各位晚安。我在使用一些简单的递归函数时遇到了麻烦。问题是递归列出给定文件夹及其子文件夹中的所有文件。
目前,我已经使用一个简单的函数设法列出了目录中的文件:
fs.readdirSync(copyFrom).forEach((file) => {
let fullPath = path.join(copyFrom, file);
if (fs.lstatSync(fullPath).isDirectory()) {
console.log(fullPath);
} else {
console.log(fullPath);
}
});
我已经尝试过各种方法,例如do{} ... while()
,但我做不到。因为我是javascript的初学者,所以我最终决定寻求你们的帮助。 最佳答案
只需添加一个递归调用即可完成:
function traverseDir(dir) {
fs.readdirSync(dir).forEach(file => {
let fullPath = path.join(dir, file);
if (fs.lstatSync(fullPath).isDirectory()) {
console.log(fullPath);
traverseDir(fullPath);
} else {
console.log(fullPath);
}
});
}