代码之家  ›  专栏  ›  技术社区  ›  Olivier Lalonde Danny

修改算法的监视文件

  •  1
  • Olivier Lalonde Danny  · 技术社区  · 15 年前

    我只是想知道文件监视算法是如何实现的。例如,假设我想在每次修改文件时对其应用筛选器(即搜索/替换字符串),我应该使用什么技术?显然,我可以运行一个无限循环来检查目录中的每个文件是否有修改,但这可能不是很有效。有没有办法直接得到操作系统的通知?为了演示起见,让我们假设一个*nix操作系统和任何语言(C/Ruby/Python/Java/etc)。

    4 回复  |  直到 15 年前
        1
  •  5
  •   bew    15 年前

    Linux有 inotify 从维基百科的链接来看,Windows也有类似的东西叫做“目录管理”。没有像inotify这样的东西,你只能投票。。

        2
  •  2
  •   Reese Moore    15 年前

    Inotify 子系统,它将提醒您修改文件。

        3
  •  1
  •   Neeme Praks Tim Pote    15 年前

    JavaSE 7将拥有 File Change Notification 作为NIO.2更新的一部分。

        4
  •  1
  •   Mark Thomas    15 年前

    rb-inotify :

    notifier = INotify::Notifier.new
    
    # tell it what to watch
    notifier.watch("path/to/foo.txt", :modify) {puts "foo.txt was modified!"}
    notifier.watch("path/to/bar", :moved_to, :create) do |event|
      puts "#{event.name} is now in path/to/bar!"
    end
    

    还有 pyinotify

    推荐文章