我在Windows机器上有一个这样大小的文件,我需要从文件大小中计算磁盘上的文件大小:
大小3,06 MB (3.216.171字节)
磁盘上的大小3,07 MB (3.219.456字节)
我有512字节/扇区文件系统
如何计算我需要使用多少扇区,从文件大小来存储文件?
我理解3219456 / 512 = 6288,但是如何从文件大小计算磁盘上的大小呢?
这是一种从文件大小获取光盘大小的方法?
我错过了什么吗?
发布于 2020-06-26 21:00:53
您的文件长度为0x31132B。
所需的存储空间(舍入最近的集群)是0x312000。您的集群要么是4kB (0x1000),要么是8kB (0x2000)。
这可计算为:
clusterSize * ceil(fileSize * 1.0 / clusterSize)( 1.0防止整数除法。)在整数数学中,它是:
clusterSize * (1 + (fileSize - 1) / clusterSize)您可以从GetDiskFreeSpace获得集群大小,无论如何都需要调用它来确定您的文件是否合适。见现有答案:
当然,其他事情可能会影响存储文件所使用的真正存储.如果一个目录在其集群中没有足够的空间用于新条目,那么如果您正在存储不适合该目录的元数据,则需要启用压缩。但对于“普通”文件系统,上述计算将是正确的。
https://stackoverflow.com/questions/62602539
复制相似问题