Loading

C#读写文件时出现占用的解决办法

一、错误提示

当我们读取一个文件而该文件被占用时会报错如下信息:

image-20211115093806646

二、解决办法

此问题发生一般是资源没被释放掉,但也存在如下可能性。我们对文件的操作非常频繁,所以写了特定的操作类/组件来维护文件之间的操作,知道特定的时刻才结束,常见的如日志,随着程序的启动便开始写日志,直到程序关闭。但其中也存在我们需要提供一个特殊的操作(读/写/删除)来操作文件,例如我们需要提供一个日志查看器来查看当前日志或所有日志,这时,便无可避免的发生了以上的问题。解决此问题,只需将文件读写锁改为FileShare.ReadWrite(FileShare就是控制文件流的“访问权限),具体代码如下:

 using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
 {
   byte[] bt = new byte[fs.Length];
   fs.Read(bt, 0, bt.Length);
   fs.Close();
  }
posted @ 2021-11-15 09:46  Dwaynerbing  阅读(2921)  评论(0编辑  收藏  举报