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

如何使用Java查找剩余的磁盘空间?,java,diskspace,Java,Diskspace,如何使用Java查找剩余的磁盘空间?查看文件类。这是1.6中的新特性之一 这些新方法还包括: public long getTotalSpace() public long getFreeSpace() public long getUsableSpace() 如果您仍在使用1.5,则可以使用库及其使用CommonsIO和文件系统: e、 g 或内置在JDK中: Java1.7有一个稍微不同的API,可以通过类、和方法查询可用空间 此API的优点是,当查询磁盘空间失败时,您可以返回有意

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

查看文件类。这是1.6中的新特性之一

这些新方法还包括:

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


如果您仍在使用1.5,则可以使用库及其

使用CommonsIO和文件系统:

e、 g

或内置在JDK中:


Java1.7有一个稍微不同的API,可以通过类、和方法查询可用空间


此API的优点是,当查询磁盘空间失败时,您可以返回有意义的异常。

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

  • getTotalSpace()
  • getFreeSpace()

这肯定会帮助你获得所需的信息。例如,您可以参考哪个函数给出了使用这些方法的具体示例。

是否有其他内置函数可用于此目的,而无需创建新文件?它不在磁盘上创建新文件,只创建一个文件对象,如果这正是您所担心的
filesystemtils
只需执行“df”命令即可(或在windows上使用DIR)。非常糟糕。欢迎使用Stack Overflow!请注意,此处不鼓励使用指向您自己网站/产品的裸链接,原因有两个:第一,答案应作为自包含的答案发布,而不仅仅是指向外部网站的链接。第二,此处不支持自我推广,并且通常被标记为垃圾邮件(特别是在没有披露您正在链接到自己的站点/产品的情况下)。请注意,非常重要的是getUsableSpace不等于getFreeSpace。例如,在Linux文件系统上,分区通常有许多保留块。这些块包含在getFreeSpace()返回的值中,但不包含在getUsableSpace()返回的值中。因此,如果您对必须在其中写入文件的空间大小感兴趣,请使用getUsableSpace-而不是getFreeSpace()。“看在上帝的份上,您正在使用”,而不是“您正在使用”。它的系统类。在Linux Debian上,FileSystems.getDefault().GetRootDirectory()调用仅返回“/”目录。@pako在unix/linux上只有一个根目录:
/
。在windows上只有多个根目录,每个驱动器号对应一个根目录。
FileSystemUtils.freeSpaceKb("/"); 
new File("/").getFreeSpace();
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());
    }
}