检索文件系统 api 的所有目录

Retrieve all directories with file system api

有没有一种方法可以计算文件系统 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);

您的 for 循环在迭代时从不检查 ientries.length

修改 for(var i = 0; entries.length; i++)
for(var i = 0; i < entries.length; i++)

此外,我假设 if(entries.isDirectory)
应该是 if(entries[i].isDirectory).

你可以试试bro-fs可以递归读取目录:

fs.readdir('dir', {deep: true})
  .then(tree => console.log(tree))