Получить все каталоги с файловой системой api

129
9

Есть ли способ подсчитать все каталоги в папке с файловой системой 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);

спросил(а) 2021-01-19T13:03:44+03:00 2 месяца, 3 недели назад
1
Решение
87

Ваш цикл for никогда не проверяет i на entries.length когда он итерации.

Изменить for(var я = 0; entries.length; i++)
for(var я = 0; я < entries.length; i++)

Кроме того, я предполагаю, if(entries.isDirectory)
должен быть, if(entries[i].isDirectory).

ответил(а) 2021-01-19T13:03:44+03:00 2 месяца, 3 недели назад
44

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

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

ответил(а) 2021-01-19T13:03:44+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема