在FileSystemWatcher检测到更改后读取文本文件的最后更改
本文关键字:取文本 文件 最后 读取 FileSystemWatcher 检测 | 更新日期: 2023-09-27 18:18:10
关于我之前的帖子:实时监控日志文件的最聪明的方法?
我想要一个FileSystemWatcher来检测文本文件(日志文件)的变化,然后我想要它向我显示最新的变化!
它们是>50bm的大文件,几乎每秒扫描一次非常耗时。
我认为.last()
可以帮助,但这段代码只返回最后一行:
File.ReadText(@"C:'Filename.txt").Last();
我需要一些代码,可以继续从最后一个点读取,只是确定并返回更改。
如果您只在文件末尾添加数据,则可以在内存中保存最后读取字节的位置,并在每次通知文件已更新时从该位置读取到文件末尾。
FileSystemWatcher
不会完全满足您的要求。它可以看到目录级别的更改。一旦文件更改,它就没有以前内容的历史记录。在File.ReadText()
上调用Last()
也没有文件先前状态的概念,这就是为什么它只返回最后一行。
我认为最好的方法是保存EOF的位置,然后每次FSW引发文件更改事件时,您将从以前的EOF位置读取到新的EOF,然后更新存储EOF位置的变量。