我在 Windows 10 中有一个包含 362 字节数据的文件,但“磁盘大小”仅为 0 字节。这是一个用汇编编写的简单“Hello world”程序,并保存在Notepad++ 中。
当文件大小为 362 字节时,磁盘上的大小怎么可能为零?
我有一个SSD,不是普通硬盘。
“属性”对话框的屏幕截图:

(我使用的是 Windows XP,但我想它在所有最新版本的 Windows 中都是相似的。)
例如,当您创建一个新的空文本文档时,您会在其属性中发现它的大小为 0 字节。零字节意味着没有信息。没有数据。
但是,文件仍然有一些名称,它仍然可以携带上次访问、修改和创建的日期。它携带信息是否隐藏文件,是否只读...
那么所有的元数据都存储在哪里呢?
我要么对 Windows 如何计算Size on disk文件夹属性中的值感到困惑,要么不正确。
我的驱动器上的簇大小是 4096 字节。
我创建了一个名为的文件夹size-on-disk-test,其中有 64 个直接子文件夹和 362,496 个文件。每个文件都是一个 3 字节大小的文本文件,仅包含文本:aaa.
假设每个文件理论上应该用完一个 4096 字节的集群,那么我应该期望看到磁盘上的文件大小来读取:
number-of-files * cluster-size? 362,496 * 4096 = 1,484,783,616(1.4GB)。
相反,它写着0::
的Size是,符合市场预期,恰好3个字节乘以文件数。
然后我在根级别记下磁盘上的可用空间并复制文件夹(这不是安装了任何活动或程序的驱动器,因此在测试期间它不应受到磁盘上其他缓存等的影响)。
根据This PC复制文件夹后根级别的检查(即单击我的驱动器上的属性),我的可用空间减少了 589,352,960 字节。
那么发生了什么?为什么 Windows 报告磁盘大小为 0 字节?为什么我的计算与现实大相径庭?
另外,文件名的长度重要吗?在精确计算中不应该考虑到这一点吗?也许文件名长度将一个 4095 字节的文件放入 4096 簇磁盘上的两个簇中?肯定文件夹在某处占用了一些分配空间?
这是一个“问题”的很多问题,但我希望有人可以向我解释如何占用空间,包括文件名、文件夹和集群。