C#读取被进程占用的文件,只读模式打开文件
遇到问题
做Excel导入程序的时候,我们加载文件经常会这样,直接读取文件到 FileStream
FileStream fs = File.OpenRead(fileName);
这样写如果文件处于打开状态,程序徐就会抛出一个异常:
错误提示:文件“D:\Log\2022.xls”正由另一进程使用,因此该进程无法访问该文件。
正确的读取方法
方案一
FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
方案二
FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
总结
这样的情况,不单要与只读方式打开excel文件,而且,需要共享锁。还必须要选择flieShare方式为ReadWrite。因为随时有其他程序对其进行写操作。
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 张国生