72

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

4

4 回答 4

100

查看 File 类文档。这是 1.6 中的新功能之一。

这些新方法还包括:

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

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

于 2009-06-26T21:13:10.053 回答
68

Java 1.7 的 API 略有不同,可用空间可以通过FileStore类通过getTotalSpace()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 的优点是,当查询磁盘空间失败时,您可以返回有意义的异常。

于 2011-10-19T03:24:44.387 回答
24

使用 CommonsIO 和 FilesystemUtils:

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

例如

FileSystemUtils.freeSpaceKb("/"); 

或内置在 JDK 中:

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

new File("/").getFreeSpace();
于 2009-06-26T21:14:29.207 回答
3

在使用 java 检查磁盘空间时,您在 java.io File 类中有以下方法

  • 总空间()
  • 获得自由空间()

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

于 2013-04-02T16:53:33.917 回答