繁体   English   中英

该进程无法访问文件'directory \\ file',因为它正被C#File Writer中的另一个进程使用

[英]The process can not access the file 'directory\file' because it is being used by another process in C# File Writer

每当我尝试保存在现有文件上时,都会收到此错误:

该进程无法访问该文件,因为该文件正在被另一个进程使用

当文件不存在时,它可以工作,但是当我尝试再次写入文件时,将显示错误。 那时我没有访问或使用文件。

这是代码:

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);

这可能是什么原因?

您的程序可能无法正确处理文件流,从而使文件保持打开状态。

使用using语句确保正确处置:

using(StreamWriter writer = new StreamWriter(file,true))
{
    writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
    writer.Close();
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM