テキストファイルを作成し、それにTextBox
のテキストを追加します。テキストファイルの作成は、次のコードで問題なく機能します。
InitializeComponent();
string path = @"C:\Users\Morris\Desktop\test.txt";
if (!File.Exists(path))
{
File.Create(path);
}
しかし、テキストファイルにテキストを追加しようとすると、ファイルが使用されているというエラーが表示されます。コードを実行する前にファイルが既に存在する場合、このエラーは発生せず、TextBox.Text
がファイルに追加されます。次のコードを使用して、テキストファイルにテキストを追加します。
public void writeTxt()
{
string path = @"C:\Users\Morris\Desktop\test.txt";
if (File.Exists(path))
{
using (var tw = new StreamWriter(path, true))
{
tw.WriteLine(TextBox1.Text);
tw.Close();
}
}
}
手伝って頂けますか?
ファイルが存在する場合は、上書きまたは追加できます。ファイルが存在しない場合、このコンストラクターは新しいファイルを作成します。したがって、ファイルが存在するかどうかを確認する必要はありません。
変更する前に、ファイルが閉じていることを確認する必要があります。
ここで を見るとわかるように、StreamWriter
は、指定されたパスにファイルが存在しない場合、実際にはファイルを作成するので、それをチェックしても意味がありません。
ファイルを作成している部分を削除して、単に書き込みを開始することをお勧めします:
_public void writeTxt()
{
string path = @"C:\Users\Morris\Desktop\test.txt";
using (var tw = new StreamWriter(path, true))
{
tw.WriteLine(TextBox1.Text);
tw.Close();
}
}
_
ただし、事前にファイルを本当に作成したい場合は、_File.Create
_呼び出しによって作成された Dispose
FileStream
オブジェクトを忘れないでください。 Dispose
を呼び出すと、自動的にFlush
とClose
が呼び出されるので、安全であり、次のようなさまざまな方法でこれを実行できます。この :
_InitializeComponent();
string path = @"C:\Users\Morris\Desktop\test.txt";
if (!File.Exists(path))
{
using ( File.Create(path) ) ; // This will generate warnings that you're not using the object and so on, but that's okay,
}
_
またはこのように:
_InitializeComponent();
string path = @"C:\Users\Morris\Desktop\test.txt";
if (!File.Exists(path))
{
FileStream fs = File.Create(path);
fs.Dispose();
}
_