有没有办法用文件系统api计算文件夹中的所有目录而不会陷入无限循环!?
无法弄清楚泄漏的原因或位置,但我最终不得不在达到50K后退出我的应用程序 - 它似乎永远不会达到终点。我在OS X上,所以它是否计算所有隐藏的目录和文件,如DS Store?
//path: my folder
app.workspace.getDirectory(path, {}, function(directory){
var reader = directory.createReader();
if(directory){
reader.readEntries(function(entries){
for(var i = 0; entries.length; i++) {
if(entries.isDirectory){
console.log('Directory: ', entries[i]);
}
else {
//don't need to know anything else...
}
}
});
}
}, error);
答案 0 :(得分:3)
你的for循环在迭代时永远不会i
对entries.length
进行检查。
修改
for(var i = 0; entries.length; i++)
至
for(var i = 0; i < entries.length; i++)
此外,我假设if(entries.isDirectory)
应该是if(entries[i].isDirectory)
。
答案 1 :(得分:0)
您可以尝试递归读取目录的bro-fs:
fs.readdir('dir', {deep: true})
.then(tree => console.log(tree))