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

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

使用

Path.GetTempPath(); 

要么

 Path.GetTempFileName(); 

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

其他人打败了我

 System.IO.Path.GetTempPath() 

但是您也可以查看应用程序数据文件夹。 这将允许你更多地控制你的文件,就像所有用户共享1个或每个用户1个共享的能力。

 Application.CommonAppDataPath Application.UserAppDataPath 

System.IO.Path使用Windows API函数GetTempPath() (请参阅MSDN )

 using System.IO ... myTempPath = Path.GetTempPath(); 

你应该知道在你的程序执行过程中文件系统可能会改变。 Temppath可能会更改(不太可能,已授予),或者您的临时文件可能已被用户移动或删除。

准备在每次访问时检查它的存在,并且在没有正常发现的情况下处理这个事件。

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

如果你想build立自己的自定义的临时文件名参考一个临时的位置,我使用这样的东西,剥离PATH和应用我自己的文件名…

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