如何使用文件系统库获取"true"文件大小?(C++17)

How to get "true" file size with filesystem library? (C++17)

本文关键字:文件大小 C++17 true 文件 文件系统 系统库 获取 何使用      更新时间:2023-10-16

我正在使用filesystem库中的file_size函数来获取文件的大小。它似乎可以正常工作,因为我的数字在文件的属性中获得了匹配的"大小",但是我想要"磁盘上的大小"。我将如何得到这个?

普通C 是不可能的。

磁盘上的实际尺寸可以通过呼叫getDiskfreespace((获得,以获取扇区/群集和字节/扇区的数量。乘以这两个以获取字节/群集,然后将实际文件大小(用C 或GetCompressedfilesizew(((绕到下一个。

例如,如果BPS为512,而SPC为4,则BPC为2048。如果文件大小为4000,则磁盘上的大小为4096。