召唤之夜1pc:文件大小 为什么 总是小于 占用空间?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 09:51:13

这个问题一般取决于存储介质的采用的存储结构决定的,例如硬盘,最小的存储单位为块,每个块可以存放512个字节,如果存储空间利用不够,剩余的空间也只能被占用
所以文件的大小总是小于占用的空间

实际上字节并不是保存文件的最小单元。操作系统将硬盘划分为若干个簇,然后以簇作为最小单位保存文件。每个簇的大小因为操作系统和分区大小而不同。例如Win9x/FAT16分区,如果分区小于512M,每个簇为8K;大于512M,每个簇为16K。如果一个文件为1K,那么在小于512M的分区,它占用8K;在大于512M的分区,它占用16K。大于一个文件,文件大小和占用空间之间的差距很小。但对于一个目录中的多个文件,这种差别可能非常大。所以你要是计算占用空间,先调用GetDiskFreeSpace获得磁盘的簇的大小。 然后利用文件大小除以簇的大小并将小数进位得到占用的簇数,然后再乘以簇的大小就可以获得获得文件占用的空间。