各位晚安。我在使用一些简单的递归函数时遇到了麻烦。问题是递归列出给定文件夹及其子文件夹中的所有文件。
目前,我已经使用一个简单的函数设法列出了目录中的文件:

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);
      }
   });
 }

09-25 16:19