我正在尝试以递归方式查看目录,而我却遇到了名称空间问题。
我的代码如下所示:
for (i in files) {
var file = path.join(process.cwd(), files[i]);
fs.lstat(file, function(err, stats) {
if (err) {
throw err;
} else {
if (stats.isDirectory()) {
// Watch the directory and traverse the child file.
fs.watch(file);
recursiveWatch(file);
}
}
});
}
看来我只是在观看最后一个目录。我相信问题是循环在lstat回调完成之前完成。所以每次调用lstat回调时,file =。我该如何解决这个问题?谢谢!
答案 0 :(得分:2)
您可以考虑使用:(假设ES5和files
是文件名Array
)
files.forEach(function(file) {
file = path.join(process.cwd(), file);
fs.lstat(file, function(err, stats) {
if (err) {
throw err;
} else {
if (stats.isDirectory()) {
// Watch the directory and traverse the child file.
fs.watch(file);
recursiveWatch(file);
}
}
});
});
答案 1 :(得分:0)
为此目的有node-watch个包。