一个文件的大小和占用空间有什么不一样?

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:42:09
我想问一下为什么占用空间总是比文件的大小大?它们有什么区别啊..

实际上字节并不是保存文件的最小单元。操作系统将硬盘划分为若干个簇,然后以簇作为最小单位保存文件。每个簇的大小因为操作系统和分区大小而不同。例如Win9x/FAT16分区,如果分区小于512M,每个簇为8K;大于512M,每个簇为16K。如果一个文件为1K,那么在小于512M的分区,它占用8K;在大于512M的分区,它占用16K。大于一个文件,文件大小和占用空间之间的差距很小。但对于一个目录中的多个文件,这种差别可能非常大。所以你要是计算占用空间,先调GetDiskFreeSpace获得磁盘的簇的大小。 然后利用文件大小除以簇的大小并将小数进位得到占用的簇数,然后再乘以簇的大小就可以获得获得文件占用的空间.
大小和占用空间不一样是很正常的,硬盘分区的最小是以4k为计算单位的。就是说好像一个一个格子一样,这些格子比较大。即使是一个文件写了一个字,它的大小不足1k,但是显示占用空间为4k。所以特别是一些小文件很多的东西。大小加起来不大,可是占用空间往往比较悬殊。
你说的那个1g和几十m估计不是这个问题,可能是识别错误之类的吧

百度了下,,看看
在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化。 1.“文件大小”与“所占空间”的差别 为了便于大家理解,我们先来看两个例子:
例1:找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,即可打开对话框,我们可以看到,Ersave2.dat的实际大小为655,628 Byte(字节),但它所占用的空间却为688,128 Byte,两者整整相差了32KB。
例2:同样是该文件,如果将它复制到A盘,你会发现该文件实际大小和所占空间基本一致,同为640KB,但字节数稍有差别。再将它复制到C盘,查看其属性后,你会惊奇地发现它的大小和所占空间的差别又不相同了!
显然,在这三种情况中,文件的实际大小没有变化,但在不同的磁盘上它所占的空间却都有变化。事实上,只要我们理解了文件在磁盘上的存储机制后,就不难理解上述的三种情况了。文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容和格式不发生