2016-10-12 3 views
0

ファイルシステム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); 

答えて

3

それが反復するときあなたのforループはentries.lengthに対するiをチェックされることはありません。

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

に加えて、私はif(entries.isDirectory)
if(entries[i].isDirectory)べきであると仮定します。

+0

私は笑いが止まらことができませんでした!長い一日だった...ありがとう。 –

0

あなたはディレクトリを再帰的に読み取ることができるbro-fsを試すことができます。

fs.readdir('dir', {deep: true}) 
    .then(tree => console.log(tree)) 
関連する問題