確定目前使用者的暫存資料夾
問題:
使用System.IO 時使用System.IO 。 Path.GetTempPath() 擷取臨時資料夾路徑,接收之間觀察到不一致目前使用者的臨時資料夾和系統的臨時資料夾。有沒有專門提供目前使用者臨時資料夾路徑的替代方法?
答案:
理解GetTempPath() 函數:
System.IO.Path.GetTempPath GetTempPath() 函數的包裝器內核32。根據 MSDN,該函數按以下順序優先考慮環境變量:
解決不一致:
如果 TMP、TEMP 或 USERPROFILE 變數之一指向 Windows 路徑,特別是其暫存目錄,則可能會出現暫存資料夾路徑不一致。
替代方法:
雖然沒有專門提供目前使用者的臨時資料夾路徑,可以利用前面討論的環境變數來建構它:
程式碼範例:
string userTempPath; // Check the USERPROFILE variable first if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("USERPROFILE"))) { userTempPath = Path.Combine(Environment.GetEnvironmentVariable("USERPROFILE"), "Local Settings", "Temp"); } // Check the TMP/TEMP variables if USERPROFILE is not defined or valid else { string tempVar = Environment.GetEnvironmentVariable("TMP"); if (string.IsNullOrEmpty(tempVar)) { tempVar = Environment.GetEnvironmentVariable("TEMP"); } if (!string.IsNullOrEmpty(tempVar) && Directory.Exists(tempVar)) { userTempPath = tempVar; } } if (!string.IsNullOrEmpty(userTempPath)) { // At this point, userTempPath should contain the current user's temporary folder path }
以上是C#中如何可靠取得目前使用者的暫存資料夾路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!