如何检测文件中的新更改?

时间:2014-06-20 14:42:02

标签: c# wpf winforms filesystemwatcher

我正在尝试构建一个显示来自多个文件的日志的logViewer。我想在修改后立即显示文件中的新更改。我正在使用FileSystemWatcher来检测文件是否已更改。但我不知道如何检测我正在监视的文件中所做的更改。我在StackOverflow中看到了一些问题,但它们没有帮助。我该怎么做?

编辑: 我想要的只是获得已添加的行/行。如果除了使用FileSystemWatcher之外还有其他方法,我也可以。

3 个答案:

答案 0 :(得分:2)

使用filesystemwatcher检测更改并使用上次读取位置获取新行并搜索文件。

https://stackoverflow.com/a/19230599/1583653

答案 1 :(得分:1)

如果您希望以编程方式执行此操作,则需要同时具有以前的版本和当前版本。然后你必须以某种方式进行比较:逐个字母,逐字逐句等,然后从那里开始。

FileSystemWatcher仅检测是否发生了更改,但未检测到更改本身。

答案 2 :(得分:0)

除了FileSystemWatcher之外,您还可以使用文件系统过滤器驱动程序(非常有效地)解决您的任务。使用这样的驱动程序,您可以在制作它们之前(之前或之后)知道这些变化,并且您知道究竟是做了什么。

如果您有内核模式开发经验或使用我们的CallbackFilter产品,您可以自己编写过滤器,尽管后者对您的需求来说太过分了。