如何爲當前用戶獲取臨時文件夾

目前,我正在使用如下功能來獲取當前用戶的臨時文件夾路徑: 函數

string tempPath = System.IO.Path.GetTempPath();

在某些計算機上,它爲我提供了當前用戶的臨時文件夾路徑,例如: spa

C:\\ Documents and Settings \\ administrator \\ Local Settings \\ Temp \\ 日誌

在某些計算機上,它爲我提供了系統臨時文件夾路徑,例如: code

C:\\ Windows \\ TEMP ci

MSDN文檔還說,上述API返回當前系統的臨時文件夾。 文檔

是否有其餘可用的API能夠給我當前用戶的臨時文件夾路徑,以下所示: get

C:\\ Documents and Settings \\ administrator \\ Local Settings \\ Temp \\ string


#1樓

我也有一樣的要求-咱們想將日誌放在環境中應該存在的特定根目錄中。 io

public static readonly string DefaultLogFilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

若是要將其與子目錄結合使用,則應該可使用Path.Combine( ... )變量

GetFolderPath方法的特殊文件夾選項有一個重載,它使您能夠控制是建立指定的路徑仍是直接驗證指定的路徑。


#2樓

嘗試

Environment.GetEnvironmentVariable("temp");

#3樓

請勿使用此:

System.Environment.GetEnvironmentVariable("TEMP")

能夠覆蓋環境變量,所以TEMP變量不必定是目錄。

正確的方法是按照接受的答案使用System.IO.Path.GetTempPath()


#4樓

System.IO.Path.GetTempPath()只是Kernel32中對GetTempPath(..)的本機調用的包裝。

看看http://msdn.microsoft.com/en-us/library/aa364992(VS.85).aspx

從該頁面複製:

GetTempPath函數按如下順序檢查是否存在環境變量,並使用找到的第一個路徑:

  • 由TMP環境變量指定的路徑。
  • TEMP環境變量指定的路徑。
  • USERPROFILE環境變量指定的路徑。
  • Windows目錄。

對我來講,「 Windows目錄」是指Windows下的temp目錄仍是Windows目錄自己,還不是很清楚。 在Windows目錄中轉儲臨時文件自己聽起來像是不受歡迎的狀況,但誰知道呢。

所以,將該頁面與您的帖子結合在一塊兒,我會猜出您的Administrator用戶的TMP,TEMP或USERPROFILE變量之一指向Windows路徑,不然未設置它們,而且回退到Windows臨時路徑。

相關文章
相關標籤/搜索