1 前情提要
发现这个问题是我在整理数据集的过程中,想看数据集的大小的时候
查看的时候,忽然发现文件的大小和占用空间不一致~
不禁好奇为什么,上网查阅了资料,大致理解了
2 情况一 占用空间大于文件大小
这是因为操作系统的文件系统(NTFS)是按簇去分配空间的,簇是分配空间的最小单位,是4KB(4096字节),什么意思
也就是说操作系统只会给某一个文件分配一个簇,两个簇,一直到N多个簇,不会出现1.5个簇,即不会出现两个不同公用一个簇的情况,这也就好理解了
也就是说占用空间只能是4KB的整数倍,而文件大小却不一定是4KB的整数倍
2 情况二 占用空间为0
如下图,文件大小482字节,占用空间却为0?
这是因为NTFS会为每个文件分配1KB的索引空间用来记录文件的基本信息。如果这个空间用不完,且文件内容少,Windows就会把内容直接写到索引空间里空余的地方。看上去就是不占硬盘空间了。
如果文件内容增加了,超过了索引区的大小,就会把内容从索引空间里移出去分配磁盘空间保存
参考
[1] 文件大小为什么和占用空间不一样?-腾讯云开发者社区-腾讯云 (tencent.com)
[2] (32 封私信 / 1 条消息) 为什么一个36字节的文本文档占用空间0字节? - 知乎 (zhihu.com)