如何使用File.getFreeSpace()与任何文件来获取Java中的可用空间?

Hor*_*ux7 5 java diskspace file

如何获取任何文件的可用磁盘空间?对于像这样的普通文件:

C:\用户\ MYNAME \应用程序数据\本地的\ Temp\somefile.tmp

我收到的值为0.仅对于根(分区)文件,如:

C:

我收到了真正的价值.如何找到任何文件的根(分区)?问题似乎也是父层次结构中可能存在链接.这意味着c:不能是文件的分区.

当然,这应该与平台无关.

Sri*_*ala 7

File.getFreeSpace()如果文件存在于指定位置,则有效.例如:

File file = new File("D:\\1\\1.txt");
System.out.println(file.getFreeSpace());
Run Code Online (Sandbox Code Playgroud)

只有当驱动器D中的目录1中存在1.txt时,才会打印驱动器D上剩余的可用空间.如果不存在,则返回0.也许您可以在目录中创建一个临时文件来查询可用空间并删除一次你拥有了它.


nul*_*ptr 7

java.nio 这些东西很棒.

使用这样的东西获得磁盘中的可用空间:

    Files.getFileStore(Paths.get("path to file").toRealPath()).getUsableSpace();
Run Code Online (Sandbox Code Playgroud)

要获得root权限,您可以使用以下内容:

Paths.get("path to file").toRealPath().getRoot()
Run Code Online (Sandbox Code Playgroud)