临时文件夹中的文件是否会自动删除?

Yar*_*veh 17 c# windows io temporary-files

如果我使用Path.GetTempPath()创建一些文件 - 它会在某个阶段自动删除,还是由我来删除它?

fin*_*nnw 24

FileOptions.DeleteOnClose将导致文件在关闭时自动删除.如果程序被异常终止,这也有效.

例如,如本答案所述:

using (FileStream fs = new FileStream(Path.GetTempPath() + "foo.bar",
       FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None,
       4096, FileOptions.RandomAccess | FileOptions.DeleteOnClose))
{
    // temp file exists
}

// temp file is gone
Run Code Online (Sandbox Code Playgroud)


Jas*_*ans 13

不,您需要手动删除该文件.Path.GetTempPath()只是为您提供临时文件夹的文件夹路径.


Oha*_*der 6

从 Windows 10 开始,答案可能是肯定的- 取决于计算机配置和托管 TEMP 文件夹的驱动器上的可用空间量。

具体来说,如果用户启用, Storage Sense可以任意从 TEMP 文件夹中删除文件(我发现这一点很困难)。据我所知,它将在磁盘空间不足时自行启用