Java how to get file’s disk space like Linux’s command “du”?
我知道 Java 可以使用 File.length(), FileChannel.size() 或 RandomAccessFile.length() 来获取文件的长度,但这等于 Linux 的命令”ls”。但是,当我创建具有以下特定长度的文件时:
1
2 |
RandomAccessFile randomAccessFile = new RandomAccessFile(filePath,“rw”);
randomAccessFile.setLength(10485760); |
并使用”ls -l filePath”,我得到文件的长度是 10485760,但使用”du filePath”只能得到 0。
那么,如何使用Java获取文件的实际使用磁盘空间呢?
- 查找稀疏文件。
根据对与 Windows 相关的问题的回答,您如何获取磁盘上的文件,而不仅仅是 Java 中的文件大小?,没有办法通过一个 Java 命令来完成,您可以运行 Linux du来自 Java,看看这里的技术 How to run Linux commands in Java?。
来源:https://www.codenong.com/57577926/