1

ディレクトリにファイルを作成したいのですが、パスに 2 つの変数が含まれており、エラーが発生します。

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

StreamWriter のパスの正しい形式はどれですか?

4

4 に答える 4

8

"\"は有効な文字列リテラルではないため、エラーが発生します。

Path.Combineただし、 - とFile.AppendAllText:を使用したほうがよいでしょう。

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

それでもライターを使用したい場合は、例外がスローされた場合でもファイル ハンドルが閉じられるようにステートメントを使用する必要があることusingに注意してください。

于 2013-08-19T20:06:38.210 に答える
3

文字をエスケープする必要があります\

これらのいずれかが機能します。

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

また

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

ただし、一般的には、Path.Combineパスを構築するために使用する方がよいと考えられています。

于 2013-08-19T20:06:09.553 に答える
0

\エスケープ文字です。

エスケープ文字を使用しない逐語的な文字列リテラルを使用する必要があります。

@"\"
于 2013-08-19T20:06:00.930 に答える
0

これを試して

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

バックスラッシュ引用符を使用することは、文字列に引用符を文字通り記述する方法であるため、単一のバックスラッシュを記述するには二重のバックスラッシュを使用する必要があります。

于 2013-08-19T20:07:21.590 に答える