Node.js以递归方式列出文件的完整路径

Gas*_*hio 3 javascript filesystems recursion node.js electron

各位晚安.我可能遇到一些简单的递归函数问题.问题是以递归方式列出给定文件夹中的所有文件.

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

fs.readdirSync(copyFrom).forEach(file => {

    let fullPath = path.join(copyFrom, file);

    if (fs.lstatSync(fullPath).isDirectory()) {
      console.log(fullPath);
    } else {
      console.log(fullPath);
    }   });
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的方法,do{} ... while()但我无法做到.
由于我是javascript的初学者,我终于决定向你们寻求帮助.

提前感谢您的宝贵帮助.

Jon*_*lms 12

只需添加一个递归调用即可完成:

 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);
      }  
   });
 }
Run Code Online (Sandbox Code Playgroud)

  • @YouDeserveThat,也许是一个愚蠢的问题,但你实际上是在调用函数而不只是定义它吗? (2认同)
  • @YouDeserveThat只需调用函数:`traverseDir(copyFrom);`.此外,如果它解决了您的问题,请接受答案:D (2认同)
  • 不要忘记导入路径`var path = require('path');` (2认同)