如何找到使用Java留下多少磁盘空间?

时间:2009-06-26 21:09:33

标签: java diskspace

如何使用Java查找剩余多少磁盘空间?

6 个答案:

答案 0 :(得分:84)

只需查看文件类documentation即可。这是1.6中的新功能之一。

这些新方法还包括:

  • public long getTotalSpace()
  • public long getFreeSpace()
  • public long getUsableSpace()

如果您仍在使用1.5,那么您可以使用Apache Commons IO库及其FileSystem class

答案 1 :(得分:54)

Java 1.7的API略有不同,可以通过FileStoregetTotalSpace()getUnallocatedSpace()方法通过getUsableSpace()类查询可用空间。

NumberFormat nf = NumberFormat.getNumberInstance();
for (Path root : FileSystems.getDefault().getRootDirectories()) {

    System.out.print(root + ": ");
    try {
        FileStore store = Files.getFileStore(root);
        System.out.println("available=" + nf.format(store.getUsableSpace())
                            + ", total=" + nf.format(store.getTotalSpace()));
    } catch (IOException e) {
        System.out.println("error querying space: " + e.toString());
    }
}

此API的优点是,在查询磁盘空间失败时,您会收到有意义的异常。

答案 2 :(得分:18)

使用CommonsIO和FilesystemUtils:

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileSystemUtils.html#freeSpaceKb()

e.g。

FileSystemUtils.freeSpaceKb("/"); 

或内置于JDK中:

http://java.sun.com/javase/6/docs/api/java/io/File.html#getFreeSpace()

new File("/").getFreeSpace();

答案 3 :(得分:6)

Link

  

如果您是Java程序员,您可以   已经被问过这么简单,   愚蠢的问题:“如何找到   我系统上剩余的可用磁盘空间?“   问题是答案是   系统依赖。实际上,它是   实施即系统   依赖。直到最近,   没有独特的解决方案可以回答   这个问题,虽然有必要   已登录Sun的Bug数据库   自1997年6月以来。现在有可能   获取Java 6中的可用磁盘空间   类File中的一个方法,其中   返回未分配的数量   由...命名的分区中的字节   抽象路径名称。但你可能会   对可用磁盘空间感兴趣   (可写的那个)。它是均匀的   可以获得总磁盘空间   使用该方法的分区   getTotalSpace()。

答案 4 :(得分:3)

在使用java检查磁盘空间时,您在java.io文件类

中有以下方法
  • getTotalSpace()
  • getFreeSpace()

肯定会帮助您获取所需信息。例如,您可以参考http://javatutorialhq.com/java/example-source-code/io/file/check-disk-space-java/,其中给出了使用这些方法的具体示例。

答案 5 :(得分:-4)

public class MemoryStatus{  
 public static void main(String args[])throws Exception{  
  Runtime r=Runtime.getRuntime();  
  System.out.println("Total Memory: "+r.totalMemory());  
  System.out.println("Free Memory: "+r.freeMemory());    
 }
}

尝试使用此代码获取磁盘空间

相关问题