我见过Windows系统使用临时文件来提高某些任务的性能。当我查看这些文件时,它们被标记为 0x100 属性。我从 Microsoft 收到以下文本:“
通过使用 CreateFile() 和
FILE_ATTRIBUTE_TEMPORARY 标志,你让
系统知道该文件是
可能是短暂的。这
像平常一样创建临时文件
文件。系统需要做最少的事情
文件的惰性写入量
系统保存磁盘结构
(目录等)一致。
这看起来是
文件已写入磁盘
”。
有使用 Delphi 创建此类临时文件的示例吗?
Thanks.
[EDIT]
补充问题:使用此类文件的上下文可能是什么,例如,它是否可以用于日志系统。日志是带有 temp 属性的文件吗?当日志变得非常大时,它会更快并且更少占用内存吗?
[EDIT]
好的,我已经使用下面 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 的这篇文章).
So:
hMyFile := CreateFile(FileName,
GENERIC_WRITE,
0,
nil,
CREATE_ALWAYS,
FILE_FLAG_DELETE_ON_CLOSE,
0);
该文件没有任何属性,并且当应用程序关闭或销毁时该文件会自动删除。
我没有找到如何将属性和标志结合起来。任何想法?
Thanks