📅  最后修改于: 2023-12-03 15:22:18.913000             🧑  作者: Mango
Java 在类库中提供了获取磁盘信息的接口,可以很容易地查找可用磁盘空间。
Java 提供了一个 FileSystemView
类来获取文件系统信息,通过 getFileSystemView()
方法获取系统文件系统视图,代码如下:
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
然后,通过 getRoots()
方法获取所有的根目录,并遍历每个根目录来获取磁盘信息,代码如下:
File[] roots = fileSystemView.getRoots();
for (File root : roots) {
String displayName = fileSystemView.getSystemDisplayName(root);
String rootPath = root.getAbsolutePath();
long totalSpace = root.getTotalSpace();
long freeSpace = root.getFreeSpace();
System.out.println(displayName + " : " + rootPath + " : " + totalSpace + " : " + freeSpace);
}
通过 getSystemDisplayName()
方法获取某个根目录的显示名称,通过 getAbsolutePath()
方法获取根目录的绝对路径,通过 getTotalSpace()
方法获取总空间,通过 getFreeSpace()
方法获取可用空间。
如果只需要获取某个磁盘的空间信息,可以通过创建一个 File
对象来实现,代码如下:
File file = new File("D:/");
long totalSpace = file.getTotalSpace();
long freeSpace = file.getFreeSpace();
System.out.println("Total Space : " + totalSpace + " Bytes");
System.out.println("Free Space : " + freeSpace + " Bytes");
如果需要获取某个磁盘的可用空间百分比,可以通过计算总空间和可用空间的比例来实现,代码如下:
double usedPercent = (double)(totalSpace - freeSpace) / totalSpace * 100;
double freePercent = (double)freeSpace / totalSpace * 100;
System.out.println("Used Space Percent : " + usedPercent + "%");
System.out.println("Free Space Percent : " + freePercent + "%");
通过上述方法,可以很方便地获取可用磁盘空间信息,并进行相关计算。同时,由于 Java 的跨平台特性,上述代码也可以在 Linux、Mac OS 等系统上顺利运行。