我已经看到 Windows 系统使用临时文件来提高某些任务的性能。当我查看这些文件时,它们被标记为 0x100 属性。我从 Microsoft 收到以下文本:“
通过使用带有 FILE_ATTRIBUTE_TEMPORARY 标志的 CreateFile(),您可以让系统知道该文件可能是短暂的。临时文件被创建为普通文件。系统需要对文件系统进行最少量的惰性写入,以保持磁盘结构(目录等)一致。这表明文件已写入磁盘。”
使用 Delphi 创建此类临时文件的任何示例?
谢谢。
[编辑]
补充问题:使用此类文件的上下文可能是什么,例如,它是否可以用于日志系统。日志是这个带有 temp 属性的文件吗?当日志变得非常大时,它会更快并且更容易减少内存吗?
[编辑]
好的,我已经使用下面 schnaader 提供的解决方案和 FILE_ATTRIBUTE_TEMPORARY 创建了文件:
hMyFile := CreateFile(FileName,
GENERIC_WRITE,
0,
nil,
CREATE_ALWAYS,
FILE_ATTRIBUTE_TEMPORARY,
0);
此类文件在创建时获取 0x120 属性。因此根据系统的临时文件。
我还创建了一个带有 FILE_FLAG_DELETE_ON_CLOSE 标志的文件(参见 L. Osterman 的这篇文章)。
所以:
hMyFile := CreateFile(FileName,
GENERIC_WRITE,
0,
nil,
CREATE_ALWAYS,
FILE_FLAG_DELETE_ON_CLOSE,
0);
该文件没有属性,并且在应用程序关闭或销毁时自动删除该文件。
我没有找到如何组合属性和标志。任何想法?
谢谢