如何查找使用Java留下了多少磁盘空间?
看看文件类documentation。这是1.6中的新功能之一。
这些新方法还包括:
public long getTotalSpace()
public long getFreeSpace()
public long getUsableSpace()
如果你还在使用1.5,那么你可以使用Apache Commons IO库及其FileSystem class
如果你是一个Java程序员,你可能 已经被问过这个简单, stupide的问题:“如何找到离开我的系统上 可用磁盘空间?”。 问题是,系统依赖于答案是 。实际上,它是依赖于系统 的 实现。直到最近, 有没有独特的解决方案来回答 这个问题,虽然需要有 已经在Sun的错误数据库 自1997年6月登陆现在就可以 与 一个获得免费的磁盘空间Java 6中方法返回 抽象路径名称所指定的分区中未分配的 字节的数量。但是您可能对 (可写入的磁盘空间)感兴趣。甚至可以使用 getTotalSpace()获得分区的总磁盘空间为 的 。
使用CommonsIO和FilesystemUtils:
例如
FileSystemUtils.freeSpaceKb("/");
或内置于JDK:
http://java.sun.com/javase/6/docs/api/java/io/File.html#getFreeSpace()
new File("/").getFreeSpace();
是否有任何其他内置函数可用于此目的,而无需创建新文件? – user892871 2012-12-20 04:55:59
它不会在磁盘上创建一个新文件,只是一个File对象,如果这是您担心的问题 – 2014-01-22 22:31:59
`FileSystemUtils`只是执行“df”命令(或在Windows上使用DIR)。非常可怕。 – 2016-01-07 00:04:29
的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的优势在于,当查询磁盘空间失败时,您会收到有意义的异常。
使用java检查磁盘空间在java中有以下方法。IO文件类
- getTotalSpace()
- getFreeSpace()
这肯定会帮助您获得所需的信息。例如,您可以参考http://javatutorialhq.com/java/example-source-code/io/file/check-disk-space-java/,其中给出了使用这些方法的具体示例。
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());
}
}
试试这个代码来获取磁盘空间
注意非常重要的是getUsableSpace不等于getFreeSpace。例如,在Linux文件系统上,分区通常具有多个保留块。它们包含在由getFreeSpace()返回的值中,但不包含在getUsableSpace()的值中。因此,如果您对需要写入文件的空间感兴趣,请使用getUsableSpace - NOT getFreeSpace()。 – Mikkel 2014-07-24 17:11:26
为了上帝的缘故,“你正在使用”,而不是“你的使用”。它的系统类。 – biggvsdiccvs 2017-02-07 21:12:45