检查文本文件中的更改

时间:2014-05-06 19:12:33

标签: c#

我需要一种简单的方法来监控文本文件的变化。不需要任何组件只是一些功能或只是如何做到这一点。

我正在考虑检查文件大小是否有任何更改,这是建议用于监控更改吗?

4 个答案:

答案 0 :(得分:3)

您可以使用FileSystemWatcher

有一个OnChanged事件处理程序。

  var w = new FileSystemWatcher();

  w.Path = @"C:\SomePath";
  w.NotifyFilter = NotifyFilters.LastWrite;
  w.Filter = "*.txt";
  w.Changed += new FileSystemEventHandler(OnChanged);
  w.EnableRaisingEvents = true;

然后:

private void OnChanged(object source, FileSystemEventArgs e)
{
    // TODO
}

答案 1 :(得分:1)

您正在寻找FileSystemWatcher

答案 2 :(得分:1)

您可以使用.NET提供的FileSystemWatcher对象

Codeproject

上有完整的源代码示例

答案 3 :(得分:1)

虽然大多数答案都指向FileSystemWatcher,但我认为这只是一个更复杂过程中的一步。

您需要走多远取决于您没有与我们分享的实际业务案例,因此我列出了您可以采取的一些措施来检测更改,在列表的下方进一步收紧以复杂性和性能为代价的检测精度

  • 如果你在启动时和FileSystemWatcher上连续监控你的逻辑
  • 检查文件的时间戳和大小
  • 检查前几个和最后几个字节
  • 校验文件:

    - 异或(快)
    - CRC32
    - MD5 - SHA256(慢,安全)

  • 存储一个精确的副本(任何想象力的过度杀伤)

所以,当你的动作触发的鸟类摄像头拍照或者你在谈论检测证书文件的变化时,你是在谈论发送自己的推文吗?方法不同。