21xrx.com
2024-12-22 22:21:58 Sunday
登录
文章检索 我的文章 写文章
Node.js文件夹遍历
2023-07-04 22:05:08 深夜i     --     --
Node js 文件夹 遍历 操作 循环

在使用Node.js进行文件处理时,文件夹遍历是一个非常常见的需求。通过遍历文件夹,可以进行各种操作,如读取文件内容、复制、删除等。

Node.js提供了fs模块,该模块提供了各种与文件系统交互的方法。要实现文件夹遍历,可以使用fs.readdir()方法。

fs.readdir()方法用于读取一个目录的内容,并返回一个包含文件名的数组。例如,要遍历当前目录下的所有文件,可以使用以下代码:


const fs = require('fs');

const path = require('path');

const folderPath = './';

fs.readdir(folderPath, (err, files) => {

 if (err) {

  console.error(err);

  return;

 }

 files.forEach((file) => {

  console.log(file);

 });

});

以上代码中,首先导入了Node.js内置的fs和path模块。然后指定了要遍历的文件夹路径为'./',使用fs.readdir()方法读取该目录下所有文件的文件名。读取结果包含在回调函数的files参数中,由于读取文件是一个异步操作,因此需要在回调函数中进行处理。这里使用forEach()方法循环遍历文件名,并输出到控制台。

如果要遍历文件夹下的所有文件(包括子文件夹中的文件),可以通过递归调用fs.readdir()方法来实现。以下是一个基于递归的实现代码:


const fs = require('fs');

const path = require('path');

const folderPath = './';

function traverseFolder(folderPath) {

 fs.readdir(folderPath, (err, files) => {

  if (err) {

   console.error(err);

   return;

  }

  files.forEach((file) => {

   const filePath = path.join(folderPath, file);

   fs.stat(filePath, (err, stats) => {

    if (err) {

     console.error(err);

     return;

    }

    if (stats.isDirectory()) {

     traverseFolder(filePath);

    } else {

     console.log(filePath);

    }

   });

  });

 });

}

traverseFolder(folderPath);

以上代码中,定义了一个名为traverseFolder()的函数,它接受一个文件夹路径作为参数。在函数体内,使用fs.readdir()方法读取该目录下的所有文件名。然后使用forEach()方法循环遍历每个文件名,并使用path.join()方法将文件夹路径和文件名合并为一个完整的文件路径。接着,使用fs.stat()方法判断该路径对应的文件是文件夹还是文件,如果是文件夹,则递归调用traverseFolder()方法;否则,直接输出文件路径。

通过以上两种方法,可以实现文件夹遍历。此外,Node.js还提供了其他一些方法用于文件系统操作,如fs.readFile()、fs.writeFile()等。根据不同的需求,可以选择适合的方法来进行文件处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复