我在Windows计算机上有一个具有此大小的文件,我需要根据文件大小计算磁盘上的文件大小:
大小 3,06 MB(3.216.171字节)
磁盘大小 3,07 MB(3.219.456字节)
我有512字节/扇区的文件系统
如何根据文件大小计算要使用多少扇区来存储文件?
我了解3219456/512 = 6288,但是如何根据文件大小计算磁盘上的大小?
Thare是一种从文件大小获取光盘大小的方法吗?
我想念什么吗?
答案 0 :(得分:2)
您的文件长度为0x31132B。
所需的存储(向上舍入到最接近的群集)为0x312000。您的群集为4kB(0x1000)或8kB(0x2000)。
这可以计算为:
clusterSize * ceil(fileSize * 1.0 / clusterSize)
(1.0
防止整数除法。)在整数数学中,它是:
clusterSize * (1 + (fileSize - 1) / clusterSize)
您可以从GetDiskFreeSpace
获取群集大小,无论如何您都需要调用它来确定文件是否适合。查看此现有答案:
当然,如果目录在其集群中没有足够的空间容纳新条目,并且存储的元数据不适合,其他因素也会影响文件的存储空间。如果已启用压缩,则在目录中。但是对于“普通”文件系统,上述计算将是正确的。