ディレクトリにファイルを作成したいのですが、パスに 2 つの変数が含まれており、エラーが発生します。
TextWriter tw = new StreamWriter(variable1+ "\" + variable2 + ".txt", true);
tw.WriteLine(textbox.Text);
tw.Close();
StreamWriter のパスの正しい形式はどれですか?
"\"
は有効な文字列リテラルではないため、エラーが発生します。
Path.Combine
ただし、 - とFile.AppendAllText
:を使用したほうがよいでしょう。
var file = Path.Combine(variable1, variable2 + ".txt");
File.AppendAllText(file, textBox.Text);
それでもライターを使用したい場合は、例外がスローされた場合でもファイル ハンドルが閉じられるようにステートメントを使用する必要があることusing
に注意してください。
文字をエスケープする必要があります\
。
これらのいずれかが機能します。
TextWriter tw = new StreamWriter(variable1+ "\\" + variable2 + ".txt", true);
また
TextWriter tw = new StreamWriter(variable1+ @"\" + variable2 + ".txt", true);
ただし、一般的には、Path.Combine
パスを構築するために使用する方がよいと考えられています。
\
はエスケープ文字です。
エスケープ文字を使用しない逐語的な文字列リテラルを使用する必要があります。
@"\"
これを試して
TextWriter tw = new StreamWriter(variable1+ "\\" + variable2 + ".txt", true);
バックスラッシュ引用符を使用することは、文字列に引用符を文字通り記述する方法であるため、単一のバックスラッシュを記述するには二重のバックスラッシュを使用する必要があります。