从文件大小获取磁盘上的文件大小

时间:2020-06-26 20:40:58

标签: windows file filesystems

我在Windows计算机上有一个具有此大小的文件,我需要根据文件大小计算磁盘上的文件大小:

大小 3,06 MB(3.216.171字节)

磁盘大小 3,07 MB(3.219.456字节)

我有512字节/扇区的文件系统

如何根据文件大小计算要使用多少扇区来存储文件?

我了解3219456/512 = 6288,但是如何根据文件大小计算磁盘上的大小?

Thare是一种从文件大小获取光盘大小的方法吗?

我想念什么吗?

1 个答案:

答案 0 :(得分:2)

您的文件长度为0x31132B。

所需的存储(向上舍入到最接近的群集)为0x312000。您的群集为4kB(0x1000)或8kB(0x2000)。

这可以计算为:

clusterSize * ceil(fileSize * 1.0 / clusterSize)

1.0防止整数除法。)在整数数学中,它是:

clusterSize * (1 + (fileSize - 1) / clusterSize)

您可以从GetDiskFreeSpace获取群集大小,无论如何您都需要调用它来确定文件是否适合。查看此现有答案:

当然,如果目录在其集群中没有足够的空间容纳新条目,并且存储的元数据不适合,其他因素也会影响文件的存储空间。如果已启用压缩,则在目录中。但是对于“普通”文件系统,上述计算将是正确的。