2016-10-12 2 views
0

Gibt es eine Möglichkeit, alle Verzeichnisse in einem Ordner mit Dateisystem api zu zählen, ohne in einer Endlosschleife stecken zu bleiben?Abrufen aller Verzeichnisse mit Dateisystem api

Kann nicht herausfinden, warum oder wo das Leck ist, aber ich musste schließlich meine App beenden, nachdem es zu 50K wurde - es sah nie aus wie einen Endpunkt zu erreichen. Ich bin auf OS X, also zählt es alle versteckten Verzeichnisse und Dateien wie 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); 

Antwort

3

Ihre for-Schleife nie wird i gegen entries.length prüft, wenn es durchläuft.

Ändern for(var i = 0; entries.length; i++)
zu for(var i = 0; i < entries.length; i++)

Außerdem nehme ich an if(entries.isDirectory)
if(entries[i].isDirectory) sein sollte.

+0

ich das Lachen nicht aufhören konnte! Es war ein langer Tag ... Danke. –

0

können Sie versuchen, bro-fs die Verzeichnisse rekursiv lesen:

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