我需要为系统中的所有磁盘或所有分区获取可用的可用磁盘空间,我不介意。(我不必使用 Sigar,但我已经在项目中将它用于其他一些流程,所以我也可以使用它)我正在使用 Sigar API 并得到了这个
public double getFreeHdd() throws SigarException{
FileSystemUsage f= sigar.getFileSystemUsage("/");
return ( f.getAvail());
}
但这只给了我系统分区(根),我怎样才能得到所有分区的列表并循环它们以获得它们的可用空间?我试过这个
FileSystemView fsv = FileSystemView.getFileSystemView();
File[] roots = fsv.getRoots();
for (int i = 0; i < roots.length; i++) {
System.out.println("Root: " + roots[i]);
}
但它只返回根目录
根: /
谢谢
编辑
它似乎我可以使用
FileSystem[] fslist = sigar.getFileSystemList();
但我得到的结果与我从终端得到的结果不匹配。另一方面,在我正在开发的这个系统上,我有 3 个磁盘,总共 12 个分区,所以我可能会在那里丢失一些东西。将在其他系统上尝试它,以防我可以从结果中做出有用的东西。