#node.js #path #fs
#node.js #путь #fs
Вопрос:
Итак, используя fs, я хотел бы прочитать ВСЕ внутри определенного каталога (назовем его родительским), включая другие каталоги, файлы внутри других каталогов и файлы внутри родительского. Например: родительский путь:
/Parent/
Все внутри родительского каталога
/Parent/index.js
/Parent/utils/utils.js
/Parent/Structures/thing.js
Как я все это получу? Я пробовал fs.readdir
, fs.readdirSync
но он читал только файлы, а не каталоги.
Ответ №1:
Ну, если у вас есть доступ к Bash в вашей среде, вы можете выполнить find
с помощью exec()
.
Пример:
const { exec } = require("child_process");
exec("find /Parent/", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
Обновление после комментариев:
Использование рекурсивной функции для рекурсивного получения всех файлов в каталоге:
const fs = require("fs")
const path = require("path")
const getAllFiles = function(dirPath, arrayOfFiles) {
files = fs.readdirSync(dirPath)
arrayOfFiles = arrayOfFiles || []
files.forEach(function(file) {
if (fs.statSync(dirPath "/" file).isDirectory()) {
arrayOfFiles = getAllFiles(dirPath "/" file, arrayOfFiles)
} else {
arrayOfFiles.push(path.join(__dirname, dirPath, "/", file))
}
})
return arrayOfFiles
}
ссылка: https://coderrocketfuel.com/article/recursively-list-all-the-files-in-a-directory-using-node-js
Комментарии:
1. Да, но я бы хотел использовать fs.
2. Как насчет использования рекурсивной функции для этого? В этой статье упоминается метод: coderrocketfuel.com/article /…
3. @user14428154 обновил ответ.