http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6407|回复: 5

[C#语言基础] C#读取被进程占用的文件

[复制链接]
发表于 2013-9-6 17:34:50 | 显示全部楼层 |阅读模式
文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一进程使用,因此该进程无法访问该文件。
logfilecargoabc.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作。
今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流。
1、
[C#] 纯文本查看 复制代码
FileStream fs = File.OpenRead(url);

[C#] 纯文本查看 复制代码
StreamReader sr = new StreamReader((System.IO.Stream)fs, System.Text.Encoding.Default);

错误提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一进程使用,因此该进程无法访问该文件。
2、
[C#] 纯文本查看 复制代码
StreamReader sr = File.OpenText(url);

错误提示:错误提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一进程使用,因此该进程无法访问该文件。
3、
[C#] 纯文本查看 复制代码
FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
正确读取。
总结:
这样的情况,不单要与只读方式打开txt文件,而且,需要共享锁。还必须要选择flieShare方式为ReadWrite。因为随时有其他程序对其进行写操作。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-6 23:37:32 | 显示全部楼层
支持一下
回复

使用道具 举报

发表于 2013-9-9 08:23:00 | 显示全部楼层
恩这个不错
发表于 2014-1-22 13:26:52 | 显示全部楼层
受教了,学习中……

发表于 2014-2-20 11:33:38 | 显示全部楼层
学习了,先mark,以后遇见再仔细研读,感谢,
发表于 2014-2-20 15:31:40 | 显示全部楼层
真是难得给力的帖子啊,强烈支持楼主。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 12:46

© 2014-2021

快速回复 返回顶部 返回列表