2013-10-06 28 views
1

的文本文件好吧,所以我的問題是;我試圖將文件保存到文件夾中的C:驅動器。現在,我知道如何做到這一點的普通文件一樣用變量寫入名稱爲

using(StreamWriter writer = new SteamWriter("c:\\Folder\\TextFile.txt"); 

我一直想搞清楚的是我怎樣才能讓這個文本文件的名稱是有這麼多它的變量替換像

using(StreamWriter writer = new SteamWriter("c:\\Folder\\Variablegoeshere.txt"); 

有反正我可以做到這一點嗎?

對於我這個可憐的提問技巧,我表示歉意。

+0

爲什麼人們會回答這種問題... – zinking

+0

爲什麼我們不會@zinking?初學者有一個問題。這並不罕見,真的。 –

回答

2

與許多其他構造函數和方法調用一樣,StreamWriter構造函數接受一個字符串參數。你可以將它傳遞給你喜歡的任何字符串。在第一個代碼示例中,您將構造函數傳遞給一個「字符串文字」 - 一個具有常數值的未命名的字符串變量。相反,你可以傳遞一個標準的字符串變量,你事先構造的。例如:

string name = // whatever you like 
string path = "c:\\Folder\\" + name + ".txt"; // use '+' to combine strings 
using (StreamWriter writer = new SteamWriter(path)); 

我平時喜歡當我串聯路徑組件使用Path.Combine靜態方法。幫助我避免丟失的問題或翻番反斜線:

string path = System.IO.Path.Combine("c:\\Folder", name + ".txt"); 

最後,與string verbatim modifier,你避開那些醜陋的雙反斜線,在其他方面必要的,因爲反斜線在非逐字「越獄」人物字符串:

string path = System.IO.Path.Combine(@"c:\Folder", name + ".txt"); 

這是 Microsoft developer reference page for strings in C#。值得一讀,就像更大的C# language reference一樣。

0
var inputPath = "c:\\Folder\\TextFile.txt"; 
var folderPath = Path.GetDirectoryName(inputPath); 
using (var writer = new StreamWriter (Path.Combine(folderPath, "Variablegoeshere.txt"))