Я попытался получить все файлы и каталоги, доступные в папке, с помощьюact-native-fs.
Я создал функцию для рекурсивного получения всех файлов и каталогов в папке. Я называю эту функцию следующим образом:
const data = await scanDir(path);
Сначала я попытался использовать .map () функция, но моя функция возвращает только некоторые элементы :
async function scanDir(pathOfDirToScan, data = {directory: [], files: []}) {
const readedFilesAndDir = await FS.readDir(pathOfDirToScan);
Object.keys(readedFilesAndDir).map(async key => {
if (readedFilesAndDir[key].isDirectory()) {
const directoryPath = pathOfDirToScan + '/' + readedFilesAndDir[key].name;
data.directory.push(directoryPath);
data = await scanDir(directoryPath, data);
} else {
data.files.push(pathOfDirToScan + '/' + readedFilesAndDir[key].name);
}
});
return data;
}
Кажется, моя функция возвращает данные после первого выполнения карты времени, но функция продолжается после этого.
Затем я попытался с для l oop, и он работает как положено :
async function scanDir(pathOfDirToScan, data = {directory: [], files: []}) {
const readedFilesAndDir = await FS.readDir(pathOfDirToScan);
for (let i = 0; i < readedFilesAndDir.length; i++) {
if (readedFilesAndDir[i].isDirectory()) {
const directoryPath = pathOfDirToScan + '/' + readedFilesAndDir[i].name;
data.directory.push(directoryPath);
data = await scanDir(directoryPath, data);
} else {
data.files.push(pathOfDirToScan + '/' + readedFilesAndDir[i].name);
}
}
return data;
}
Что я должен сделать, чтобы сделать функция правильно работает с использованием .map ()?