在Windows中保存临时文件的正确位置?

时间:2009-04-15 16:09:36

标签: c# windows

我有一个文件需要写入临时位置,Windows中最好的位置是什么?这个文件不需要移动,因为我需要阅读它几次并在关闭程序时将其处理掉。

5 个答案:

答案 0 :(得分:44)

使用

Path.GetTempPath();

Path.GetTempFileName();

正如评论员指出的那样,GetTempFileName()不是线程安全的 - 但你可以根据GUID构造唯一的文件名。

答案 1 :(得分:11)

其他人打败了我

System.IO.Path.GetTempPath()

但您也可以查看应用程序数据文件夹。这将允许您更好地控制您的文件,例如为所有用户共享1个或每个用户1个。

Application.CommonAppDataPath
Application.UserAppDataPath

答案 2 :(得分:7)

使用GetTempPath()中的Windows API函数System.IO.Path(参见MSDN

using System.IO

...

myTempPath = Path.GetTempPath();

您应该知道文件系统在程序执行期间可能会发生变化。 Temp路径可能会更改(不太可能,已授予),或者您的临时文件可能已被用户移动或删除。

准备好每次访问它时检查它是否存在,并在没有找到它的情况下处理它。

答案 3 :(得分:0)

如果您需要将应用程序写入临时位置并以部分信任方式工作,则需要查看IsolatedStorage

答案 4 :(得分:0)

如果你想在引用临时位置时构建自己的自定义临时文件名,我会使用类似的东西来剥离PATH并应用我自己的文件名......

string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf";