如何找到使用Java留下多少磁盘空间?
只需查看File类文档即可.这是1.6中的新功能之一.
这些新方法还包括:
public long getTotalSpace()
public long getFreeSpace()
public long getUsableSpace()
如果您仍在使用1.5,那么您可以使用Apache Commons IO库及其FileSystem类
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的优点是,在查询磁盘空间失败时,您会收到有意义的异常.
使用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();
链接
如果您是Java程序员,您可能已经被问到这个简单,愚蠢的问题:"如何找到系统上剩余的可用磁盘空间?".问题是答案取决于系统.实际上,它是依赖于系统的实现.直到最近,没有唯一的解决方案来回答这个问题,尽管自1997年6月以来已经记录在Sun的Bug数据库中.现在可以通过类File中的方法获得Java 6中的可用磁盘空间,它返回抽象路径名指定的分区中未分配的字节数.但是您可能对可用磁盘空间(可写磁盘空间)感兴趣.甚至可以使用getTotalSpace()方法获取分区的总磁盘空间.