我在 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
因为我需要观看整个目录(最好也是所有子目录:)。
谢谢您的帮助!