关于 NTFS 的说明

NTFS文件系统可与Windows NT及其后续版本的操作系统一起使用。它提供了一些特殊功能,这些功能对 TreeSize 也产生影响。

我们将在下文中介绍其中的一些功能及其对本软件的影响。

访问控制列表

可以限制用户访问文件和文件夹的方式。用户可以授予或拒绝其他用户或组某些权限,如读取、写入、执行或删除。这样甚至可以拒绝管理员访问文件和文件夹。

如果管理员试图访问 Windows 资源管理器中的文件夹,而该文件夹的所有者拒绝任何其他用户读取该文件夹,则会显示 "拒绝访问 "错误信息。

不过,如果您以管理员身份登录或以有权执行备份的用户身份登录(可在 "控制面板 > 管理工具 > 本地安全策略 "和 Windows 的用户编辑器中更改此选项),TreeSize 就能扫描此类文件夹。

基于文件的压缩

NTFS 支持对单个文件进行压缩。NTFS 卷上的压缩文件无需先由其他程序解压缩即可读写。在读取文件时,解压缩会自动、透明地进行。保存文件时会再次压缩。

压缩文件占用的空间通常比正常大小要小得多。因此,对于部分或全部压缩的文件夹,TreeSize 报告的分配空间可能小于该文件夹报告的大小。

TreeSize 能在 "详细信息 "选项卡的附加栏中显示压缩率。此外,它还可以用不同的颜色显示压缩文件和文件夹。这些功能可在 "选项 "对话框中打开或关闭。

TreeSize 能使用右键菜单压缩和解压整个文件系统分支。

在 Windows 10 中,微软在 NTFS 中引入了新的透明压缩功能,旨在压缩操作系统的文件,主要是 DLL 和 EXE 文件。与旧的基于文件的压缩不同,这些文件不会在文件属性中标记为压缩文件。

稀疏文件

文件虽大,但只被部分使用的文件称为`sparse files<https://en.wikipedia.org/wiki/Sparse_file>`_ 。

由于操作系统不会为稀疏文件未使用的部分分配磁盘空间,因此其占用的磁盘空间小于实际大小。

TreeSize 将稀疏文件视为压缩文件,并计算其压缩率。

备用数据流 (ADS)

在 NTFS 中,文件由不同的数据流组成。一个数据流包含安全信息(访问权限等),另一个数据流包含文件中的 "真实数据"。

可能会有备用数据流,以与标准数据流相同的方式保存数据。这些备用数据流是隐藏的。这意味着,一个文件的官方主数据流中可能只有一个字节,而一个或多个备用数据流中可能有数百个字节。

dir 命令、文件管理器或 Windows 资源管理器会显示该文件的大小为 1 字节,但实际上它在硬盘上分配的空间要大得多。

_images/TreeSize-MainWindow_AlternateDataStreams.png

TreeSize 可以检测备用数据流,并将其大小添加到分配的文件大小中。

Note

ADS 可将信息存储在与主数据流相同的集群中,因此如果一个文件有一个或多个 ADS,该文件不一定会分配更多磁盘空间。

你可以在 TreeSize 选项对话框中选择检测备用数据流,以获得更准确的目录分支分配空间。

该选项默认为停用,因为查询 ADS 需要一些时间,会增加扫描所需的总时间。您可以使用 TreeSize 的自定义文件搜索功能搜索包含备用数据流的文件。

自动重复数据删除

Windows Server 2012 及更高版本提供重复数据删除功能:重复数据删除功能会将内容大致相同的文件分割成所谓的 "块",这些 "块 "会被移动到相应 NTFS 分区上的子文件夹 "System Volume Informaton\Dedup\ChunkStore\" 中。

在 Windows 执行重复数据删除后,原始数据将被 ChunkStore 目录中相应分块的指针所取代。两个相同的文件在经过 NTFS 重复数据删除后,所占用的磁盘空间只有原来的一半。

由于原始文件现在只包含一个小指针而不是数据,因此 Windows 显示的已分配磁盘空间值将比以前小得多(对于两个完全相同的文件,占用的磁盘空间将显示为 "0 字节")。

要让 TreeSize 显示原始的 file 和文件夹大小,只需将视图模式从“分配空间”切换为“大小”即可。 TreeSize 中显示的“分配空间”是删除相应的 file后获得的磁盘空间。

离线文件

Windows Server 和一些第三方工具和设备提供一种名为 "脱机文件 "的功能:长时间未使用的文件会自动转移到更便宜、更慢速的存储空间,而一个小的存根文件会保留在其原始位置。

通常,TreeSize 会正确报告此类存根文件的分配空间,通常只有一个文件系统集群的大小。

不过,有一种情况是存根文件分配的空间可能无法正确报告。如果 TreeSize 遇到拒绝访问错误,它会使用Windows备份软件的API函数,以便能够扫描 file 系统中的这些部分,并提供其大小和分配空间的数值。

我们看到有些设备将完整文件大小报告为存根文件的分配空间,这很可能是因为备份时占用的就是这个大小。

为避免这种情况,请确保运行扫描的用户对扫描的文件系统拥有完全读取权限。