如何处理文件异常:无法访问文件,因为它正在被另一个进程使用

本文关键字:文件 因为 进程 另一个 处理 何处理 异常 访问 | 更新日期: 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锁时不会全速旋转。

相关文章: