记忆是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的空间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)