簡體   English   中英

在Windows中保存臨時文件的正確位置?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM