2013-11-21 144 views
39

我想用StreamWriter將文件寫入臨時文件夾。將文件寫入臨時文件夾

它可能是在每臺PC上不同的路徑,所以我嘗試使用%temp%\SaveFile.txt,但它沒有奏效。

如何使用環境變量保存到臨時文件夾?

例如,我可以使用環境變量來存儲%appdata%中的文件嗎?

回答

72
+0

OK,非常感謝你。我在哪裏可以找到更多的環境變量,例如主硬盤,用戶設置和應用程序數據? – BlueRay101

+1

System.Environment類將幫助您獲取環境變量等。另外一定要查看System.Environment.SpecialFolder枚舉。 http://msdn.microsoft.com/en-us/library/system.environment%28v=vs.110%29.aspx – trope

+0

因此對於臨時文件夾,我總是必須使用Path.GetTempPath();,並且對於任何其他特殊路徑(如AppData或ProgramFiles),我必須使用System.Environment? – BlueRay101

2

System.IO.Path.GetTempPath()

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

30

Path類是非常有用的在這裏。
你得到兩種方法稱爲

Path.GetTempFileName

Path.GetTempPath

,可以解決你的問題

因此,例如,你可以寫:(如果你不介意的確切文件名)

using(StreamWriter sw = new StreamWriter(Path.GetTempFileName())) 
{ 
    sw.WriteLine("Your error message"); 
} 

或者,如果你需要設置文件名

string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt"); 
using(StreamWriter sw = new StreamWriter(myTempFile)) 
{ 
    sw.WriteLine("Your error message"); 
} 
+0

臨時目錄根據會話更改,使用RDP我登錄並訪問%TEMP%它指向temp/2以後temp/4 ...如何獲取臨時文件夾(不是temp/digit) – asvignesh

+1

不要問問題在一個三年答案的評論裏面。發佈(在強制研究之後)你自己的問題,指定與此處不同的內容 – Steve

6

可以使用如下,更好地用它代替使用臨時location.It硬編碼字符串值,只要你想將返回的臨時文件夾或臨時文件的動態檢索一個臨時路徑。

string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt"); 

Path.GetTempFileName(); 
1

爲%APPDATA%看一看到

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 
+0

我可以將它保存爲字符串變量,因此我不必每次都重寫它? – BlueRay101

+0

當然你可以:) – 2013-11-21 21:41:18

+0

是否需要任何特殊權限的RW ..或標準用戶也可以寫在該目錄上? – asvignesh