我有一个文件需要写入临时位置,Windows中最好的位置是什么?这个文件不需要移动,因为我需要阅读它几次并在关闭程序时将其处理掉。
答案 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";