在Java旧时代,它缺乏确定分区上可用磁盘空间的方法。 但是,自从JDK 1.6发布以来,情况有所改变,一些新方法– getTotalSpace() , getUsableSpace()和getFreeSpace()与java.io.File捆绑在一起,以检索分区或磁盘空间的详细信息。
例
package com.mkyong;
import java.io.File;
public class DiskSpaceDetail
{
public static void main(String[] args)
{
File file = new File("c:");
long totalSpace = file.getTotalSpace(); //total disk space in bytes.
long usableSpace = file.getUsableSpace(); ///unallocated / free disk space in bytes.
long freeSpace = file.getFreeSpace(); //unallocated / free disk space in bytes.
System.out.println(" === Partition Detail ===");
System.out.println(" === bytes ===");
System.out.println("Total size : " + totalSpace + " bytes");
System.out.println("Space free : " + usableSpace + " bytes");
System.out.println("Space free : " + freeSpace + " bytes");
System.out.println(" === mega bytes ===");
System.out.println("Total size : " + totalSpace /1024 /1024 + " mb");
System.out.println("Space free : " + usableSpace /1024 /1024 + " mb");
System.out.println("Space free : " + freeSpace /1024 /1024 + " mb");
}
}
输出量
在c:分区中显示磁盘空间详细信息。
=== Partition Detail ===
=== bytes ===
Total size : 52428795904 bytes
Space free : 33677811712 bytes
Space free : 33677811712 bytes
=== mega bytes ===
Total size : 49999 mb
Space free : 32117 mb
Space free : 32117 mb
注意
getFreeSpace()和getUsableSpace()方法都返回给定分区相同的总可用磁盘空间。 但是,即使在Java文档中,真正的区别也不清楚。 告诉我您是否知道两者之间有什么不同。
参考
http://download.oracle.com/javase/6/docs/api/java/io/File.html
翻译自: https://mkyong.com/java/how-to-get-free-disk-space-in-java/