C# 对文件进行读写的时候出现了"另一进程正在使用此文件"

做文件读写时,我们难免会遇到文件读写故障,例如经常会碰到的一个问题:

System.IO.IOException: 文件“XXX”正由另一进程使用,因此该进程无法访问此文件。

下面谈下笔者对这类问题的看法:

  • 首先是列举我们习惯用的读写文件的方式:

FileStream fs = new FileStream(url);
StreamReader sr = new StreamReader(fs);
StringBuilder sb = new StringBuilder();
while (!sr.EndOfStream)
{
sb.AppendLine(sr.ReadLine());
}

  • 现在列举修改之后比较合理的写法:


FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
StringBuilder sb = new StringBuilder();
while (!sr.EndOfStream)
{
sb.AppendLine(sr.ReadLine());
}

  • 总结:

    这样的情况,不单要以只读方式打开txt文件,而且,需要共享锁。还必须要选择flieShare方式为ReadWrite。因为随时会有其他程序对其进行写操作。

转载自:c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件

你可能感兴趣的:(C# 对文件进行读写的时候出现了"另一进程正在使用此文件")