当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何找到使用Java留下多少磁盘空间?》经验,为你挑选了4个好方法。

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



1> Kredns..:

只需查看File类文档即可.这是1.6中的新功能之一.

这些新方法还包括:

public long getTotalSpace()

public long getFreeSpace()

public long getUsableSpace()


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


请注意,getUsableSpace不等于getFreeSpace.例如,在Linux文件系统上,分区通常具有许多保留块.这些包含在getFreeSpace()返回的值中,但不包含在getUsableSpace()返回的值中.因此,如果您对编写文件所需的空间感兴趣,请使用getUsableSpace - NOT getFreeSpace().

2> prunge..:

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的优点是,在查询磁盘空间失败时,您会收到有意义的异常.


在Linux Debian上,FileSystems.getDefault().getRootDirectories()调用只返回"/"目录.

3> Jon..:

使用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();


它不会在磁盘上创建新文件,只是一个File对象,如果你担心的话

4> Chris Klepei..:

链接

如果您是Java程序员,您可能已经被问到这个简单,愚蠢的问题:"如何找到系统上剩余的可用磁盘空间?".问题是答案取决于系统.实际上,它是依赖于系统的实现.直到最近,没有唯一的解决方案来回答这个问题,尽管自1997年6月以来已经记录在Sun的Bug数据库中.现在可以通过类File中的方法获得Java 6中的可用磁盘空间,它返回抽象路径名指定的分区中未分配的字节数.但是您可能对可用磁盘空间(可写磁盘空间)感兴趣.甚至可以使用getTotalSpace()方法获取分区的总磁盘空间.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有