与我之前的帖子有关:实时监控日志文件的最智能方法?
我想要一个 FileSystemWatcher 来检测文本文件(日志文件)的更改,然后我希望它向我显示最新的更改!
它们是大于 50bm 的大文件,几乎每秒进行一次完整扫描非常耗时。
我虽然.last()
可以提供帮助,但此代码仅返回最后一行:
File.ReadText(@"C:\Filename.txt").Last();
我需要一些可以从最后一个位置继续读取并确定并返回更改的代码。
与我之前的帖子有关:实时监控日志文件的最智能方法?
我想要一个 FileSystemWatcher 来检测文本文件(日志文件)的更改,然后我希望它向我显示最新的更改!
它们是大于 50bm 的大文件,几乎每秒进行一次完整扫描非常耗时。
我虽然.last()
可以提供帮助,但此代码仅返回最后一行:
File.ReadText(@"C:\Filename.txt").Last();
我需要一些可以从最后一个位置继续读取并确定并返回更改的代码。
如果您只是在文件末尾附加数据,您可以将最后读取字节的位置保存在内存中,并在每次通知文件已更新时从该位置读取到文件末尾。
FileSystemWatcher
不会完全按照您的意愿行事。它在目录级别看到更改。一旦文件更改,它就没有以前的内容的历史记录。调用也没有文件先前状态Last()
的File.ReadText()
概念,这就是它只返回最后一行的原因。
我认为最好的方法是保存 EOF 的位置,然后每次 FSW 引发文件更改事件时,您将从先前的 EOF 位置读取到新的 EOF,然后更新存储 EOF 位置的变量。