5

我在 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事件。查看节点代码和测试,似乎这些应该是可能的。

那么,是否可以fs.watch查看目录及其所有子目录?是否至少可以从文件修改中获取事件?此外,据我所知,fs.watch支持kqueueeventid(在 OSX 中)相关的,是否有可能得到它eventid

注意:我专门使用fs.watch而不是fs.watchFile因为我需要观看整个目录(最好也是所有子目录:)。

谢谢您的帮助!

4

1 回答 1

0

此问题不再出现在最新的 Node 版本中。但是,还有其他几个错误fs.watch,因此您可能希望推迟使用它,直到这些错误得到解决:https ://github.com/joyent/node/issues/search?q=fs.watch

于 2011-11-14T02:10:25.900 回答