- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试从我的 NAS 获取可用空间,但 Mac 和 Windows 返回不同的值。我使用 java.io.File 和方法 getFreeSpace。
Mac 结果,不正确:
39.13465499...GB
Windows 结果,正确:
4134.864555...GB
我的代码:
private static String multiMediaFolder;
private static long freeDiskSpace;
public static void main(String[] args) {
if (System.getProperty("os.name").equals("Mac OS X")){
multiMediaFolder = "/Volumes/Multimedia/movies/HD";
} else if (System.getProperty("os.name").substring(0, 7).equals("Windows")){
multiMediaFolder = "\\\\QNAP\\Multimedia\\movies\\HD";
}
freeDiskSpace = new File(multiMediaFolder).getFreeSpace();
double sizeInGigaByte = (double) freeDiskSpace / 1024 / 1024 / 1024;
System.out.println(sizeInGigaByte);
}
路径不同,但指向同一个文件夹。为什么 Mac 版本与 Windows 版本有很大不同?
最佳答案
我得到了答案。有两个区别,就像我们在我上面的帖子中看到的那样。
Linux 返回 4326416688 <- 以千字节为单位。
Mac(就像 linux)返回 4326416688 <- 这也是千字节。
Windows 返回一个更大的数字 4429798060032 <- 这是字节。
这解释了为什么 Windows 值是正确的。
我现在要使用的代码:
private static String multiMediaFolder;
private static long freeDiskSpace;
private static double sizeInGigaByte;
public static void main(String[] args) {
if (System.getProperty("os.name").equals("Mac OS X")){
multiMediaFolder = "/Volumes/Multimedia/movies/HD";
freeDiskSpace = new File(multiMediaFolder).getFreeSpace();
sizeInGigaByte = (double) freeDiskSpace / 1024 / 1024;
} else if (System.getProperty("os.name").substring(0, 7).equals("Windows")){
multiMediaFolder = "\\\\QNAP\\Multimedia\\movies\\HD";
freeDiskSpace = new File(multiMediaFolder).getFreeSpace();
sizeInGigaByte = (double) freeDiskSpace / 1024 / 1024 / 1024;
}
System.out.println(sizeInGigaByte);
}
关于Java - Mac 和 Windows 之间的文件 getFreeSpace 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998398/
我有一个在 Tomcat 6 上运行的应用程序,并使用 JDK 1.6.0_34。 它会定期(大约每 1-5 分钟)检查共享文件夹,并在硬盘驱动器上没有可用空间时执行一些操作(注意,不删除内容)。因此
我在我的应用程序中使用 Java 的 File 类中的 file.GetFreeSpace() 来确保在传输文件之前有足够的空间。该路径是一个 unc 路径,目前有大约 5TB 的可用空间。但是,当运
我无法指出 File 类的 getFreeSpace() 和 getUsableSpace() 方法之间的确切区别。当我运行以下代码时,得到相同的 o/p。 Class Start { pub
我正在尝试从我的 NAS 获取可用空间,但 Mac 和 Windows 返回不同的值。我使用 java.io.File 和方法 getFreeSpace。 Mac 结果,不正确: 39.1346549
如何获得任何文件的可用磁盘空间?对于像这样的普通文件: C:\Users\MyName\AppData\Local\Temp\somefile.tmp 我收到过值 0。仅针对根(分区)文件,如: c:
我有一个外部 SSD 磁盘 (/dev/sda)。 当输入 df -h 时: size used avil use% 587G 383G 175G 69% 当输入 df -H 时: size used
我是一名优秀的程序员,十分优秀!