2014-06-30 68 views

回答

5

您可以觀看文件系統事件特定目錄 如rb-inotify

require "rb-inotify" 

DIR_TO_WATCH = "/tmp/notify-dir" 

notifier = INotify::Notifier.new 

notifier.watch(DIR_TO_WATCH, :create, :delete) do |event| 
    puts "Create event for: #{event.name}" if event.flags.include?(:create) 
    puts "Delete event for: #{event.name}" if event.flags.include?(:delete) 
end 

notifier.run 

希望有所幫助。

編輯

對於支持多平臺你可以試試Listen,這是由人的衛隊製成,支持Mac OS X 10.6以上版本,Linux和BSD(some problems are there)和Windows。

從技術文檔:

listener = Listen.to('dir/to/listen', 'dir/to/listen2') do |modified, added, removed| 
    puts "modified absolute path: #{modified}" 
    puts "added absolute path: #{added}" 
    puts "removed absolute path: #{removed}" 
end 
listener.start # not blocking 
sleep 
+0

對不起,不充分的解釋。 我打算在windows,mac和linux上使用它。 劑量它在多平臺上工作? –

+0

好的。 rb-inotify只適用於linux :( –

+0

非常感謝你的回答。我已經嘗試了gem Listen,但它無法檢測目錄事件。是否需要任何設置來啓用目錄事件檢測? –

相關問題