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

或者您可以在关闭后使 writer 对象无效。

于 2010-11-06T10:32:42.553 回答
0

尝试使用writer.Flush();之前writer.Close();

于 2010-11-06T12:16:42.453 回答