我尝试保存现有文件时收到此错误:
该进程无法访问该文件,因为它正由另一个进程使用
当文件不存在时,它会起作用,但当我再次尝试写入时,错误会显示出来。我当时没有访问或使用该文件。
这是代码:
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);
这可能是什么原因?
答案 0 :(得分:2)
您的程序可能没有正确处理文件流,保持文件打开。
使用using
语句确保正确处置:
using(StreamWriter writer = new StreamWriter(file,true))
{
writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
writer.Close();
}
答案 1 :(得分:0)
或者你可以在关闭后使编写器对象无效。
答案 2 :(得分:0)
尝试在writer.Flush();
writer.Close();