修改算法的监视文件
问题描述:
我只是在想如何实现文件监视算法。例如,假设我想在每次修改文件时对文件应用过滤器(即搜索/替换字符串),我应该使用哪种技术?显然,我可以运行一个无限循环来检查目录中的每个文件以进行修改,但效率可能不是很高。有什么方法可以直接通过操作系统获得通知吗?为了演示,我们假设一个* nix OS和任何语言(C/Ruby/Python/Java /等)。修改算法的监视文件
答
有易于使用从高级语言中使用的包装。例如,在Ruby中,你可以做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但我无法想出尽量精简上面的一个例子。