稀疏文件

其中大部分数据为零的文件据说包含 稀疏数据集。 此类文件通常非常大,例如,包含要处理的图像数据的文件或高速数据库中的矩阵。 包含稀疏数据集的文件的问题在于,大多数文件不包含有用的数据,因此,它们对磁盘空间的使用效率低下。

NTFS 文件系统中的文件压缩是问题的部分解决方案。 文件中未显式写入的所有数据都显式设置为零。 文件压缩将压缩这些范围的零。 但是,文件压缩的缺点是,由于数据压缩和解压缩,访问时间可能会增加。

NTFS 文件系统中引入了对稀疏文件的支持,这是提高磁盘空间使用效率的另一种方式。 启用稀疏文件功能后,系统不会向文件分配硬盘驱动器空间,除非该文件包含非零数据的区域。 尝试写入操作时,如果缓冲区中的大量数据为零,则不会将零写入文件。 相反,文件系统会创建一个内部列表,其中包含文件中零的位置,并在所有读取操作期间查询此列表。 在文件所在的区域中执行读取操作时,文件系统在为读取操作分配的缓冲区中返回适当的零数。 这样,稀疏文件维护对于访问该文件的所有进程都是透明的,并且比压缩此特定方案更有效。

稀疏文件的默认数据值为零;但是,可以将其设置为其他值。

有关稀疏文件的详细信息,请参阅以下主题。

在本节中

主题 说明
稀疏文件操作
通过调用 GetVolumeInformation 函数确定文件系统是否支持稀疏文件。
获取稀疏文件的大小
使用 GetCompressedFileSizeGetFileSize 函数获取文件分配的大小或总大小。
稀疏文件和磁盘配额
稀疏文件根据文件的名义大小影响用户配额,而不是实际分配的磁盘空间量。