如何find剩下多less磁盘空间使用Java?

如何find剩下多less磁盘空间使用Java?

只要看看File类文档 。 这是1.6中的新function之一。

这些新方法还包括:

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

如果你仍然使用1.5,那么你可以使用Apache Commons IO库和它的FileSystem类

Java 1.7有一个稍微不同的API,通过getTotalSpace() , getUnallocatedSpace()和getUsableSpace()方法可以通过FileStore类来查询可用空间。

 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的优点是,当查询磁盘空间失败时,你会得到有意义的exception。

使用CommonsIO和FilesystemUtils:

http://commons.apache.org/io/api-release/org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(java.lang.String);

例如

 FileSystemUtils.freeSpaceKb("/"); 

或者内置到JDK中:

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

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

链接

如果你是一个Java程序员,你可能已经被问到这个简单,愚蠢的问题:“如何find剩余在我的系统上的可用磁盘空间?”。 问题是答案是依赖于系统的。 实际上,这是系统依赖的实现。 直到最近,还没有独特的解决scheme来回答这个问题,尽pipe自1997年6月以来Sun的Bug数据库中已经logging了这个需求。现在可以使用类File中的方法获得Java 6中的可用磁盘空间,它返回由抽象path名命名的分区中的未分配字节数。 但是,您可能对可用磁盘空间(可写的)感兴趣。 甚至可以用方法getTotalSpace()来获得分区的总磁盘空间。

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

  • getTotalSpace()
  • getFreeSpace()

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