最近遇到这样一个需求,用C#写一个界面,在界面上实时输出一个日志文件。

实时检测文件变化,以便刷新界面显示,可以用FileSystemWatcher组件,响应Changed事件即可。

 

关键是在Changed事件响应函数中,如果以传统只读模式打开文件句柄,老是会提示: 文件正由另一进程使用,因此该进程无法访问该文件。

最后发现构造文件流时除了常见的FileMode外,还可以指定FileShare参数,实现控制其他 System.IO.FileStream 对象对同一文件的共享操作,代码如下:

1 FileStream stream = new FileStream(Directory.GetCurrentDirectory() + "\\log\\log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
2 StreamReader reader = new StreamReader(stream, Encoding.UTF8);
3 String value = reader.ReadToEnd();

 

相关文章:

  • 2022-12-23
  • 2021-06-15
  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
猜你喜欢
  • 2021-06-28
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-11-16
相关资源
相似解决方案