“硬链接”和“交点”(Junction Point) 这是导致数值差异的常见技术原因。 原理: 在Windows中,有些文件夹(例如 C:\Documents and Settings 在Win10/11中实际是一个指向 C:\Users 的“交点”)并不是真正的文件夹,而是一个链接。当你全选C盘时,可能会把链接指向的目标文件重复计算。 具体例子: 假设 C:\MyLink 指向 C:\RealFolder。RealFolder 里面有1GB数据。 系统属性统计时,知道 MyLink 只是一个链接,只计算这1GB数据一次。 但是,当你全选时,资源管理器可能既统计了 RealFolder 的大小,又统计了 MyLink “看起来”占用的1GB(实际上它只是指向过去),结果总和变成了2GB。这就导致你计算的总和远大于实际占用。
文件大小和占用空间的差别,这里有几个原因相互影响的。 首先文件系统有个最小分配单元大小(簇大小),小文件哪怕就1字节也会占用这个大小的空间(另外NTFS支持把一些小于1KB的文件直接写入MFT里)。 然后文件可以压缩(ntfs压缩)以及硬链接(重复文件合并),这种情况下占用会比大小小。 同时,文件和目录的隐藏和系统属性以及权限设置也会影响文件大小和占用空间大小的获取。 另外Windows10+还有预留空间设置,以及文件系统本身就占用空间,这些都会造成影响。 总之,这些因素相互叠加影响,很难直接推出是哪个原因造成的高低差异。