在Mac OSX上通过节点0.5.9的fs.watch

我在Node v0.5.9上运行以下内容:

var fs = require("fs"); fs.watch("/Users/username/testingFsWatcher/",function(event,file) { console.dir(arguments); }); 

然后我做:

  • cd /Users/username/testingFsWatcher/
  • >file1 – > { '0': 'rename', '1': null }
  • mkdir new_folder – > { '0': 'rename', '1': null }
  • >new_folder/file2 – >没有事件触发/输出
  • touch file1 – >没有事件触发/输出
  • rm file1 – > { '0': 'rename', '1': null }

我注意到两件事情看起来不正确:不监视子目录( new_folder ),更新/修改观看的文件不会触发change事件。 看看节点代码,并testing它应该是可能的。

那么,是否有可能让fs.watch观看一个目录及其所有的子目录? 是否至less有可能从文件修改中获得一个事件? 另外,据我所知, fs.watch是由绑定到eventid (在OSX中)的kqueue支持的,是否有可能获得这个eventid

注意:我特别使用fs.watch而不是fs.watchFile因为我需要观察整个目录(最好是所有的子目录:)。

谢谢您的帮助!

       

网上收集的解决方案 "在Mac OSX上通过节点0.5.9的fs.watch"