Windows(或 NTFS)是否支持具有虚假大小的占位符文件?

use*_*623 7 windows ntfs hard-drive

每次启动 Photoshop 时,它都会立即在缓存所在的硬盘驱动器上创建一个 2GB 的临时文件。这是一个盘片驱动器,我听不到任何通常与写入 2GB 数据相关的硬盘驱动器噪音。是否可以创建一个具有“假”大小的空占位符文件来保留空间,以防它以后确实需要缓存一些数据?

Ben*_*n N 8

有两种不同的方法可以在 NTFS 卷上完成此操作。

SetEndOfFile功能,在NTFS文件系统,保留了该文件的磁盘空间,但不填充任何空间。由于更新 NTFS 簿记,这里可能会有一些磁盘活动。当程序对文件执行任何操作超过先前写入的最后一个字节时,NTFS 会在最后写入的(最后一个“有效”)字节和请求的字节(以避免安全问题)之间乱写,并更新有效数据指针.

然后是稀疏文件。与用 扩展的普通文件不同SetEndOfFile,NTFS 跟踪哪些扇区中有实际数据,而不仅仅是哪个字节是具有有效数据的最后一个字节。没有写入任何内容的长期零不会存储在物理磁盘上。

您可以检查文件是否稀疏,fsutil sparse queryflag后跟文件路径。如果它不是稀疏的,则程序使用第一种方法。

进一步阅读:为什么我的单字节写入需要永远?

  • 我的猜测是 Photoshop 不使用稀疏文件,因为它们可能会在重要的事情中间突然返回“磁盘已满”错误,而“SetEndOfFile”扩展文件会提前提交物理空间。 (2认同)