2016-10-12 2 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

Ваш цикл никогда не проверяя 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).

+0

Я не мог удержаться от смеха! Это был долгий день ... Спасибо. –

0

Вы можете попробовать bro-fs, которые могут читать каталоги рекурсивно:

fs.readdir('dir', {deep: true}) 
    .then(tree => console.log(tree)) 
Смежные вопросы