首页 > 解决方案 > Node.js 递归列出文件的完整路径

问题描述

各位晚安。我可能遇到了一些简单的递归函数的问题。问题是递归列出给定文件夹及其子文件夹中的所有文件。

目前,我已经设法使用一个简单的函数列出目录中的文件:

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 的初学者,我终于决定向你们寻求帮助。

标签: javascriptnode.jsrecursionfilesystemselectron

解决方案


只需添加一个递归调用,您就完成了:

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

推荐阅读