我正在使用java.io.File.length()方法来获取文件的大小。
但是对于稀疏文件,此值可能与该文件使用的实际磁盘空间有很大差异。
有没有一种方法可以获取文件的实际磁盘使用情况?
文件的外观大小是文件中的字节数。例如,一个包含单词“ zoo”且没有换行符的文件的大小显然为3。但是,使用以下命令创建的稀疏文件:
dd bs=1 seek=2GiB if=/dev/null of=big
具有2 GiB的表观大小,但是在大多数现代系统上,它实际上几乎不占用磁盘空间。
使用jnr-posix。用法示例:
import jnr.posix.*;
final POSIX p = POSIXFactory.getPOSIX();
final int S_BLKSIZE = 512; // from sys/stat.h
final FileStat stat = p.stat("/some/file.txt");
final long bytes = stat.blocks() * S_BLKSIZE;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句