2013-10-12 65 views
5

我正在開發一個類的項目。我必須做的是將解析的指令導出到文件。微軟有這個例子,說明如何寫入文件:將文件寫入任何計算機上的項目文件夾

// Compose a string that consists of three lines. 
string lines = "First line.\r\nSecond line.\r\nThird line."; 

// Write the string to a file. 
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt"); 
file.WriteLine(lines); 

file.Close(); 

我沒事的那部分,但有寫文件到當前項目的環境/位置的方法嗎?我想這樣做,而不是硬編碼一個特定的路徑(即"C:\\test.txt")。

回答

16

是的,只是使用相對路徑。如果你使用@".\test.txt"(順便提一句,@只是說我正在做一個字符串文字,它不需要轉義字符,所以你也可以做".\\test.txt",它會寫入同一個地方),它會將文件寫入當前工作目錄在大多數情況下是包含你的程序的文件夾。

+0

甜。簡明扼要。非常感謝! – blutuu

8

您可以使用Assembly.GetExecutingAssembly().Location來獲取主程序集(.exe)的路徑。請注意,如果該路徑位於受保護的文件夾內(例如Program Files),那麼除非用戶是管理員,否則您將無法在該文件夾中寫入 - 不要依賴此文件夾。

下面是示例代碼:

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 
string fileName = Path.Combine(path, "test.txt"); 

This question/answer演示瞭如何獲取用戶的配置文件夾,您將有寫訪問。或者,您可以使用用戶的My Documents文件夾來保存文件 - 同樣,您可以保證可以訪問它。你可以通過致電

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 
相關問題