Java如何像Linux的命令 "du"一样获取文件的磁盘空间?

标签 java linux

我知道 Java 可以使用 File.length()、FileChannel.size()RandomAccessFile.length() 来获取文件的长度,但这等同于 Linux 的命令“ls”。但是,当我创建一个具有特定长度的文件时,如下所示:

    RandomAccessFile randomAccessFile = new RandomAccessFile(filePath,"rw");
    randomAccessFile.setLength(10485760);

并使用“ls -l filePath”,我得到文件的长度是 10485760,但使用“du filePath”只得到 0。

那么,如何使用Java获取文件实际使用的磁盘空间呢?

最佳答案

根据对有关 Windows 的问题的回答,How do you get the file on disk, and not just the file size in Java? , 没有办法通过一个 Java 命令来完成,你可以从 Java 运行 Linux du,看看这里的技术 How to run Linux commands in Java? .

关于Java如何像Linux的命令 "du"一样获取文件的磁盘空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57577926/

相关文章:

linux - 在找不到的 EC2 Linux 命令上安装 Composer

linux命令行: du --- how to make it show only total for each directories

linux - Linux中的缓存是否会导致堆内存空间不足异常?

java - Log4j创建动态文件

java - 如何为组合编写递归函数

linux - Bash 和对话框 UI,如何动态改变颜色

python - 无法加载动态库 'libnvinfer.so.6'

java - 如何创建美国 map 并自由填充每个州的颜色?

java - Mongodb 在 Java 中将 .Net GUID 转换为 BinData

java - DataNucleus 和缓存协调