为什么文件的大小很小但占用空间却很大?

为什么文件的大小很小但占用空间却很大?,第1张

占用空间与FAT参数有关,基本单位通常是4KB,不败桐满4KB也要占据,不再分配给其他文件了。

记忆是4KB,不好说,呵呵

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

查看你硬盘上的一个任意非空目录或者非空文件的属性,看到大小有2个数值:一个叫大小,也就是文件的大小;另外一个叫占用空间,就是占用的硬盘空间。

占用空间肯定大于等于文件大小,因为硬盘的最小单位是簇,丛碧空任何文件再小也不会小于一簇,默认磁盘一簇一般是4KB(格式化的时候可以选择)。

举个简单的例子:你本地新建一个文本文件渗瞎,然后里面输入一个字符,查看大小的时候你会发现,文件大小只有1字节,而占用空间却有4KB。就是说1字节的文件也会占用一慧拦个簇,就是4KB了。

我们系统统计的是您实际的占用硬盘空间,按照上面的原理,如果用户目录内的文件很小而文件很多,那么占用空间会比文件大小多出很多,因为每个文件都可能不是4KB的整数倍。如果只有一个文件,那么差距最多也不超过4KB,但是当您的文件很小而很多的话,占用空间会比文件大小多10%甚至更高。

假设都是1字节的文件,差距就非常大了,比如1024个1字节的文件,大小只有1KB,而占用空间却有1024*4KB=4MB。

因为文件夹里的文件多,而存储文件的硬盘或闪存是以簇为单位,FAT32中一簇为4KB大小袜圆,这碧渗样如果一个文件5KB,告慧塌将会占用两个簇8KB的空间。就浪费了3K

的空间


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12148202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存