我在Node v0.5.9上运行以下命令:
var fs = require("fs");
fs.watch("/Users/username/testingFsWatcher/",function(event,file) {
console.dir(arguments);
});
Run Code Online (Sandbox Code Playgroud)
然后我做:
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因为我需要观看整个目录(最好是所有的子目录:).
谢谢您的帮助!
这个问题在最新的 Node 版本中不再出现。但是, 中还存在其他几个错误fs.watch,因此您可能需要推迟使用它,直到这些错误得到解决:https ://github.com/joyent/node/issues/search?q=fs.watch
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |