我正在使用file_size库中的filesystem函数来获取文件的大小。由于获得的数字与文件属性中的“大小”相匹配,因此它似乎工作正常,但是我希望“磁盘上的大小”。我将如何得到这个?

最佳答案

用普通的C ++是不可能的。

磁盘上的实际大小可以通过调用GetDiskFreeSpace()来获取,以获取扇区/群集的数量和字节/扇区的数量。将这两个乘以得到字节/群集,然后将实际文件大小(使用C ++或GetCompressedFileSizeW()获得)四舍五入到下一个倍数。

例如,如果bps为512,spc为4,则bpc为2048。如果文件大小为4000,则磁盘上的大小为4096。

关于c++ - 如何使用文件系统库获取“真实”文件大小? (C++ 17),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57329371/

10-11 22:43
查看更多