我在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
由kqueue
支持,它与eventid
(在OSX中)绑定,是否可以获得eventid
?
注意:我专门使用fs.watch
而不是fs.watchFile
,因为我需要观看整个目录(最好是所有子目录)。
感谢您的帮助!
答案 0 :(得分:0)
此问题不再出现在最新的Node版本中。但是,fs.watch
中还有其他一些其他错误,因此您可能希望暂时停止使用它,直到找到这些错误:https://github.com/joyent/node/issues/search?q=fs.watch