2013-08-19 72 views
1

我想創建一個文件到一個目錄,但路徑包含兩個變量,我得到錯誤。如何構建包含變量的路徑?

TextWriter tw = new StreamWriter(variable1+ "\" + variable2 + ".txt", true); 
tw.WriteLine(textbox.Text); 
tw.Close(); 

這是StreamWriter中路徑的正確格式嗎?

+3

未來,請指出*您收到的錯誤*,而不是僅僅表明有*錯誤。 –

回答

8

那麼你會得到一個錯誤,因爲"\"不是一個有效的字符串文字。

但是,你會更好使用Path.Combine - 也File.AppendAllText

var file = Path.Combine(variable1, variable2 + ".txt"); 
File.AppendAllText(file, textBox.Text); 

需要注意的是,如果你沒有仍然想用一個作家,你應該使用using語句,因此文件句柄即使拋出異常也會關閉。

+0

我收到錯誤「給定路徑的格式不受支持。」在File.AppendAlltet命令中,而該文件未被創建。我不知道我是否清楚,但我想將variable2.txt保存到目錄變量1中。 –

+1

@ D-Lef:那麼這就是我給出的代碼將做的 - 但只有當'變量1'和'變量2'的值是適當的。 *這些變量的值是什麼? –

+0

是的,你說得對,variable2的值不合適。它等於一個datetimepicker的ShortTimeString,它包含空格,如「12:43 a.m.」。我不得不想一些其他的方式來使用它。謝謝你的時間! –

0

\轉義字符

您需要使用逐字字符串中,不使用轉義字符:

@"\" 
3

你需要躲避\字符。

這些要麼將工作:

TextWriter tw = new StreamWriter(variable1+ "\\" + variable2 + ".txt", true); 

TextWriter tw = new StreamWriter(variable1+ @"\" + variable2 + ".txt", true); 

但是,它通常被認爲最好使用Path.Combine來構建路徑。

+0

爲什麼downvote? –

0

試試這個

TextWriter tw = new StreamWriter(variable1+ "\\" + variable2 + ".txt", true); 

做反斜槓引號是一個字符串字面寫引號的方式,所以你需要做一個雙反斜線爲了寫一個反斜槓。

相關問題