如何确定 Windows 中文件夹在磁盘上的实际大小

Jos*_*ley 2 windows ntfs disk-space windows-10

我要么对 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 簇磁盘上的两个簇中?肯定文件夹在某处占用了一些分配空间?

这是一个“问题”的很多问题,但我希望有人可以向我解释如何占用空间,包括文件名、文件夹和集群。

LMi*_*er7 5

磁盘大小值充其量只是一个近似值,在处理像 NTFS 这样的复杂文件系统时尤其如此。有许多因素使这比最初出现的要复杂得多。只是其中几个因素:

  • 重解析点
  • 压缩文件
  • 硬链接
  • 稀疏文件
  • 备用数据流
  • 文件和文件夹开销

小文件可能完全适合 MFT,根本不会分配任何数据簇。具体大小取决于文件 MFT 条目中有多少可用空间。这取决于文件名的长度、安全信息所需的空间等等。

处理这些因素的最佳方法取决于您希望如何使用这些信息。至于哪种方式最好,没有明确的答案,因此必须做出许多武断的决定。

将磁盘上的值仅作为指导。在某些情况下,例如对于大量非常小的文件,它甚至不接近。只有在您可以指定所有参数的情况下才能实现真正的准确性,即使是专家也会发现这令人绝望。

有关详细信息,请参阅本文:https : //blogs.msdn.microsoft.com/oldnewthing/20041228-00/?p=36863/


归档时间:

查看次数:

5428 次

最近记录:

6 年,1 月 前