C# 将文件标记为临时文件
在Windows上的C#中,有没有一种方法可以写入文件并将其标记为临时文件,这样操作系统就不会麻烦将其物理写入磁盘?所讨论的文件很小,在不久的将来会被另一个程序读取,然后很快被删除和重写,因此将其完全保存在RAM中是有意义的C# 将文件标记为临时文件,c#,windows,C#,Windows,在Windows上的C#中,有没有一种方法可以写入文件并将其标记为临时文件,这样操作系统就不会麻烦将其物理写入磁盘?所讨论的文件很小,在不久的将来会被另一个程序读取,然后很快被删除和重写,因此将其完全保存在RAM中是有意义的 我目前正在使用file.WriteAllText编写文件,但如果需要,可以使用不同的API。这很简单,无需任何p/Invoke即可完成: var file = File.Create(path); File.SetAttributes(path, File.GetAttri
我目前正在使用
file.WriteAllText
编写文件,但如果需要,可以使用不同的API。这很简单,无需任何p/Invoke即可完成:
var file = File.Create(path);
File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Temporary);
FileAttributes.Temporary枚举值与文件属性临时常量(0x100)相同:
指定文件\u属性\u临时属性会导致文件系统
避免在缓存内存足够时将数据写回大容量存储器
是可用的,因为应用程序在
把手关上了。在这种情况下,系统完全可以避免写入
数据。虽然它不直接控制数据库中的数据缓存
与前面提到的标志一样
文件\u属性\u临时属性会告诉系统保持为
在系统缓存中尽可能多地不写入,因此可能
关注某些应用
请看一下
MemoryMappedFile
“将其完全保存在RAM中是有意义的”——为什么?您是否分析了您的应用程序并确定这是一个瓶颈?@IInspectable事实上与其说是速度,不如说是噪音-人耳足以确定硬盘抖动和冷却风扇旋转是这方面的“瓶颈”。(您无需提醒我现在每个人都应该在SSD上。)如果在创建文件时指定文件\属性\临时
,这将强烈提示文件系统不要麻烦将其写入磁盘。不过,我不知道用C语言做这件事的最佳方法。@HarryJohnston:。如果只有FileOptions
有一个Temporary=256
成员,那么您可以在不调用CreateFile
的情况下执行此操作,但设计者明智地选择不提供此选项。(如果您试图捏造它,FileStream
构造函数会抱怨。)