0

既存のファイルに保存しようとすると、次のエラーが表示されます。

別のプロセスで使用されているため、プロセスはファイルにアクセスできません

ファイルが存在しない場合は機能しますが、もう一度書き込もうとするとエラーが表示されます。その時、私はファイルにアクセスしたり使用したりしていません。

コードは次のとおりです。

string directory = filepath + "Updates\\" + dir;
if(!Directory.Exists(directory))
{
    Directory.CreateDirectory(directory);
}
remarks = remarks.Trim();
remarks = remarks.Replace("\r\n","<br>");
remarks = remarks.Replace(",","|");
string file = directory + "\\" +  getIndex(barcode) + ".asdt";
StreamWriter writer = new StreamWriter(file,true);
writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
writer.Close();

チェックすると、次の行でエラーが発生します。

StreamWriter writer = new StreamWriter(file,true);

これの原因は何ですか?

4

3 に答える 3

2

プログラムがファイル ストリームを適切に処理しておらず、ファイルを開いたままにしている可能性があります。

ステートメントを使用して、using適切な廃棄を確実にします。

using(StreamWriter writer = new StreamWriter(file,true))
{
    writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
    writer.Close();
}
于 2010-11-06T10:08:32.000 に答える
0

または、閉じた後にライター オブジェクトを無効にすることもできます。

于 2010-11-06T10:32:42.553 に答える
0

writer.Flush();前に使ってみるwriter.Close();

于 2010-11-06T12:16:42.453 に答える