当文件中有数据时,磁盘上文件的大小怎么会是 0 字节?

当文件中有数据时,磁盘上文件的大小怎么会是 0 字节?

我在 Windows 10 中有一个文件,其中包含 362 字节数据,但“磁盘大小”仅为 0 字节。这是一个用汇编语言编写的简单“Hello world”程序,保存在记事本++

当文件大小为 362 字节时,磁盘上的大小怎么可能为零?

我有一个SSD,而不是普通硬盘。

属性对话框的屏幕截图:

属性对话框的屏幕截图

答案1

如果文件太小,其内容和文件系统记录都只能容纳 1KB,就会发生这种情况。为了节省磁盘空间,NTFS 让小文件“驻留”,将其内容直接存储在文件记录中,因此无需为其分配任何簇。因此,磁盘上的大小为零,因为文件记录之外没有任何东西。一旦文件变得足够大,NTFS 就会使其“非常驻”,为其分配一个或多个簇(创建非零“磁盘上的大小”),并在文件记录中创建“映射对”来代替数据指向簇。

SSD 硬盘或 Windows 10 不会影响这一点;这只是 NTFS 功能。进一步阅读:NTFS 文件增长的四个阶段

请注意,“磁盘上的大小”指标并不完全正确。例如,它从不包含 NTFS 文件记录占用的 1KB 常量。该指标是在 Windows 95 中引入的,当时没有使用 NTFS,因此无法解释这种现象;它只是显示文件大小四舍五入到簇大小的下一个倍数。该估算算法一直沿用到 Windows 7,尽管它们之间的许多 Windows 版本都使用 NTFS 和常驻存储。它最终在 Windows 8 中进行了更新,将只有常驻数据的文件计为磁盘上的大小为零的文件。进一步阅读:“磁盘大小”到底是什么?

相关内容