[英]Correct location to save a temporary file in Windows?
我有一個文件需要寫入臨時位置,Windows中最好的位置是什么? 這個文件不需要移動,因為我需要閱讀它幾次並在關閉程序時將其處理掉。
使用
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();
您應該知道在程序執行期間文件系統可能會發生變化。 Temp路徑可能會更改(不太可能,已授予),或者您的臨時文件可能已被用戶移動或刪除。
准備好每次訪問它時檢查它的存在,並在沒有找到優雅的情況下處理案例。
如果你想在引用臨時位置時構建自己的自定義臨時文件名,我會使用這樣的東西來剝離PATH並應用我自己的文件名...
string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf";
如果您需要將應用程序寫入臨時位置並以部分信任方式工作,則需要查看IsolatedStorage 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.