var length = new System.IO.FileInfo(path).Length;
Run Code Online (Sandbox Code Playgroud)
这给出了文件的逻辑大小,而不是磁盘上的大小.
我想在C#中获取磁盘上文件的大小(最好没有互操作),如Windows资源管理器所报告的那样.
它应该给出正确的大小,包括:
我知道Java可以使用File.length(), FileChannel.size()orRandomAccessFile.length()来获取文件的长度,但这相当于Linux的命令“ls”。但是,当我创建具有特定长度的文件时,如下所示:
RandomAccessFile randomAccessFile = new RandomAccessFile(filePath,"rw");
randomAccessFile.setLength(10485760);
Run Code Online (Sandbox Code Playgroud)
并使用“ls -l filePath”,我得到文件的长度是10485760,但使用“du filePath”只能得到0。
那么,如何使用Java获取文件实际使用的磁盘空间呢?