如何处理文件异常:无法访问文件,因为它正在被另一个进程使用
本文关键字:文件 因为 进程 另一个 处理 何处理 异常 访问 | 更新日期: 2023-09-27 18:15:28
如何处理这个异常。我有一个文本文件。这段代码每3秒重写一次文件。同时,另一个MS Excel文件从文件中读取数据。有时会出现这个异常
是否有一种方法让StreamWriter等到MS Excel完成读取文件并开始重写文件之后?
string path = @"C:'My Path'my_file.txt";
using (StreamWriter fs = new StreamWriter(File.OpenWrite(path)))
{
fs.Write(text);
fs.Close();
}
这是一个方法:
string path = @"C:'My Path'my_file.txt";
string text = "Declare text variable so this code compiles";
FileStream fileS = null;
bool done = false;
while (!done)
{
done = true;
try
{
fileS = File.OpenWrite(path);
}
catch (IOException ex)
{
done = false;
}
}
using (StreamWriter fs = new StreamWriter(fileS))
{
fs.Write(text);
fs.Close();
};
我还会添加一个StopWatch
调用,以便在这么长时间后具有上述while
循环超时,并且可能是一个小的Thread.Sleep()
,因此您在基本上试图获得FileStream
锁时不会全速旋转。