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

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

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

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

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

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

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

<code>
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());
}</code>

  • 总结:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容