Windows中大小与磁盘大小差异的解释

您可以通过在文件资源管理器中打开文件属性来查看文件的实际大小 。如果您注意到的话,文件属性会显示同一文件的两种不同类型的大小,即Size和Size on disk 。磁盘上的大小通常大于实际文件大小 。但在某些情况下,它可能等于或小于实际文件大小 。在本文中,我将讨论Windows PC 上的“大小”和“磁盘大小”之间的区别 。
大小与磁盘大小差异的解释在详细讨论“大小”和“磁盘大小”之间的区别之前,让我们先看看这些术语之间的基本区别 。在这里,我还将向您展示一些计算,这些计算将给出“磁盘大小”的精确和近似结果 。下面的屏幕截图显示了文件的大小和“磁盘上的大小” 。

Windows中大小与磁盘大小差异的解释

文章插图
 
Size表示文件的实际大小 。简单来说,它是文件保存的数据的大小 。大小可以根据文件所具有的数据来增加或减少 。例如,如果您创建一个空白文本文件,它将显示 0 字节的大小 。但当您开始在其中写入文本时,它的大小也会开始增加 。
磁盘上的大小显示将文件存储在硬盘驱动器上时所占用的字节数 。根据分配单元大小,您将看到同一文件在磁盘上的不同大小 。通常,“磁盘上的大小”大于文件的实际大小 。要理解这一点,您需要理解计算 。但在向您展示计算之前,有必要了解数据如何存储在硬盘上 。
数据是如何存储在硬盘上的当您将数据存储在硬盘驱动器上时,Windows 将其转换为二进制值,即 0 和 1 。这些值以簇的形式存储在硬盘驱动器上 。簇大小表示用于存储文件的少量磁盘空间 。在 Windows 中,通常提供三种类型的文件系统:NTFS、FAT 32 和 exFAT 。所有这些文件系统都支持不同的分配单元大小 。根据所选文件系统及其分配单元大小,计算“磁盘上的大小” 。计算后,Windows 在文件属性中显示相同的内容 。
您可以在格式化硬盘或硬盘分区时选择簇大小 。如果未指定簇大小,Windows 将采用簇大小的默认值并格式化硬盘驱动器或硬盘驱动器分区 。
当您存储文件时,它存储在簇中 。根据文件大小(文件容纳的字节数),将其分布在簇中进行存储,这决定了“磁盘上的大小” 。例如,如果要在 NTFS 文件系统的硬盘上存储大小为 5 KB 的文件,簇大小(分配单元大小)为 1024 字节,则这 5 KB 被划分并存储在不同的簇组中,每个簇持有1024 字节数据 。最后一个簇上剩余的空字节数将被浪费 。这就是为什么“磁盘大小”通常大于实际文件大小 。
磁盘大小的计算现在,让我们看看磁盘大小的一些计算,以便您可以更好地理解这个主题 。我对NTFS文件系统上不同簇大小的不同大小的文本文件做了一些计算 。在这里,我将向您展示相同的内容并尝试解释这些计算 。
当分配单元大小为 4096 字节时磁盘上大小的计算我获取了一个大小为 24223 字节的文本文件,并将其复制到具有 NTFS 文件系统且分配单元大小为 4096 字节的 USB 闪存驱动器 。分配单元大小是 USB 闪存驱动器的簇大小 。当我打开文本文件的属性时,我看到以下详细信息:
Windows中大小与磁盘大小差异的解释

文章插图
 
  • 大小 – 24223 字节
  • 磁盘大小 – 24576 字节
您可以在上面的屏幕截图中看到相同的信息 。正如我在本文上面所解释的,“磁盘大小”通常大于文件的实际大小 。这是因为文件存储过程中簇被浪费了 。让我们看看幕后的计算 。
实际文件大小为24223字节,选择的簇大小为4096字节 。现在,Windows 将该文件存储在簇中 。这意味着 24223 字节以 4096 个簇的形式分布在磁盘上 。我说“4096 个簇的集合”是因为每个簇(分配单元)最多可以容纳 4096 字节的数据 。
如果我将 24223 字节除以 4096 字节,我将得到以下结果:
24223/4096 = 5.9138 字节从上面的结果可以看出,有 5 组簇被完全占用,最后 6 组有一些空簇 。Windows 不使用这些空簇来存储其他数据 。因此,这些集群是一种浪费 。但如果您覆盖同一文件中的数据,Windows 将使用相同的簇 。
现在5组4096个集群全部被占用 。这给了我们以下值:
5 x 4096 = 20480 字节我们的数据总共有 24223 字节 。其中,5组簇完全占用了20480字节 。因此,我们数据的剩余字节是:
24223 - 20480 = 3743 字节Windows 将在最后一组簇(在本例中为第 6 个簇)中填充所有这 3743 个字节 。每个簇可以存储4096字节 。因此,剩余的空簇是:
4096 - 3743 = 353 字节现在,这些剩余的或空的字节被添加到我们文件的实际字节中 。这将为我们提供实际结果(“磁盘大小”) 。
353 + 24223 = 24576 字节上面的结果中,“Size on disk”显示24576字节(6组簇,每个簇最多可存储4096字节)被完全占用 。但实际上,6组簇中只有5.9138部分用于存储数据,其余的都浪费了 。
当分配单元大小为 8192 字节时磁盘上大小的计算现在,我获取了另一个文件,并将 USB 闪存驱动器的分配单元大小从 4096 字节更改为 8192 字节 。
上面的屏幕截图显示了该文件的以下详细信息:
  • 大小 – 5202 字节
  • 磁盘大小 – 8192 字节
在这里,计算很容易 。因为这里的文件大小小于分配单元大小,所以它完全适合仅分配大小为 8192 字节的 1 组簇,其余字节将被浪费 。因此,Windows 显示 8192 字节作为该文件的磁盘大小 。
当分配单元大小为 1024 字节时磁盘上大小的计算现在,让我们看看如果将同一文件的分配单元大小从 8192 字节减少到 1024 字节会发生什么 。我将 USB 闪存驱动器格式化为簇大小为 1024 字节,并将相同的文件复制到其中 。
查看以下文件属性:
  • 大小 – 5202 字节
  • 磁盘大小 – 6144 字节
这里,簇大小小于总文件大小,文件中的字节数以 1024 字节的簇集分布在硬盘上 。这里,每个簇最多可以容纳 1024 字节 。
如果我将 5202 字节除以 1024 字节,我将得到以下结果:
5202/1024 = 5.08 字节这意味着 5 组分配单元(每组 1024 字节)已被完全占用,剩余字节将填充到下一组中 。
【Windows中大小与磁盘大小差异的解释】5 组 1024 字节 = 5 x 1024 字节 = 5120 字节5120字节被完整写入磁盘 。让我们计算一下要写入磁盘的剩余字节数 。
5202 - 5120 字节 = 82 字节Windows 将在分配大小为 1024 字节的最后 6 组簇中写入 82 字节 。因此,簇的最后一组中的剩余字节将保持为空 。
剩余字节,1024 - 82 = 942 字节这些剩余或空字节将添加到我们文件的实际字节中 。这将为我们提供实际结果(“磁盘大小”) 。
5202 + 942 = 6144 字节这就是“磁盘大小”的计算方式 。我仅展示了一个文件的“磁盘大小”的计算 。
为什么在某些情况下“大小”和“磁盘上的大小”之间存在很大差异?当您在硬盘驱动器上复制文件时,Windows 不会同时复制所有文件 。它通过在分配单元中填充字节来逐个复制文件 。写入数据后,Windows 会计算空的或浪费的分配单元,并将它们添加到实际文件大小中以显示磁盘上的大小 。
这就是为什么在某些情况下您可能会看到文件的实际大小与“磁盘上的大小”之间存在很大差异的原因 。
如何减少大小与磁盘大小的差异磁盘空间越大意味着浪费越多 。因此,如果要减少实际文件大小与磁盘大小之间的差异,则需要减小分配单元大小 。
您可以在两种不同情况下看到同一文件的实际大小与其在磁盘上占用的大小之间的差异 。在磁盘上的大小显示 6144 字节的图像中,分配单元大小为 1024 字节 。在第二张图中,“磁盘大小”显示 32768 字节,分配大小为 32 KB 。因此,很明显,较小的分配单元大小将使您的文件大小与“磁盘上的大小”之间的差异最小 。
要减小分配单元大小或簇大小,请按照下面提供的步骤操作 。在开始格式化存储设备或硬盘驱动器分区之前,请将其数据复制到另一个存储设备 。
  • 右键单击您的存储设备或硬盘驱动器分区 。
  • 选择格式 。
  • 单击分配单位大小下拉列表 。
  • 从可用选项列表中选择分配大小 。
  • 单击“开始”以格式化您的硬盘 。
成功格式化存储设备或硬盘分区后,您可以将数据复制回其中 。
磁盘 0 上的大小是什么意思?文件属性中的磁盘大小有时会显示所选文件的大小为 0 字节 。当文件不包含足够的数据来填充簇时,通常会发生这种情况 。当所有簇都为空时,“Size on disk”显示 0 字节 。
磁盘大小有何用途?磁盘大小用于存储数据 。您可以在“磁盘管理”应用程序中查看磁盘的大小 。如果您谈论的是“磁盘上的大小”,则它是用于在磁盘上以簇或分配单元存储数据的字节数 。