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开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:Linq to SQL语句基础讲解
下一篇:C#文件流Stream转数组Byte[]失败的解决方案
评论列表

发表评论

评论内容
昵称:
关联文章

C#读取进程占用文件模式打开文件
C# 读取txt文件生成Word文档
C# 解析加载读取XML文件正确姿势
windows查看端口占用情况
文件或目录损坏且无法读取
SourceGenerator应用: .Net多进程开发库 - Juxtapose
C# txt文本文件读取与写入,
.NET 高效依赖注入:使用 Lazy<T> 和工厂模式优化性能与内存占用
使用Linux操作系统写NTFS移动硬盘方法 (linux写ntfs移动硬盘)
excel2007直接打开文件空白,需要菜单打开
C#使用默认浏览器打开URL
selenium爬虫检测到 该如何破
.NET Core 中读取 Request.Headers 姿势
Python读取excel xlrd读取xlsx报错:Excel xlsx file; not supported
C#操作 配置文件*.ini
ASP.NET Core 中读取Post Request.Body 正确姿势
.NET中大型项目开发必备(4)--数据库写分离
如何定位程序占用内存过大问题-程序内存/CPU占用分析
C#进化——C#发展史、C#1.0-10.0语法系统性梳理、C#与JAVA对比
2.网络聊天程序三种模式

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码