📜  nodejs readdir - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:57.866000             🧑  作者: Mango

Node.js readdir

在 Node.js 中,使用 readdir 函数可以读取目录中的所有文件和子目录。

语法
fs.readdir(path[, options], callback)
  • path :目录的路径。
  • options :可选参数,用于设置编码、筛选文件等。
  • callback :回调函数,返回读取到的文件列表或错误信息。
示例

以下示例展示了如何使用 readdir 函数读取目录下的文件列表。

const fs = require('fs');

fs.readdir('/path/to/dir', (err, files) => {
  if (err) {
    console.error(err);
  } else {
    console.log(files);
  }
});

输出结果如下:

['file1.txt', 'file2.js', 'subdir']
配置选项

readdir 函数的第二个参数 options 可以用于配置读取目录时的参数。

  • encoding :设置编码类型,默认为 utf8
  • withFileTypes :设置为 true 时,返回一个包含文件类型的 fs.Dirent 对象数组。
  • filter :自定义过滤文件的回调函数,只返回符合条件的文件名。

以下示例展示了如何使用 options 过滤文件。

const fs = require('fs');

const options = { filter: (file) => file.endsWith('.md') };

fs.readdir('/path/to/dir', options, (err, files) => {
  if (err) {
    console.error(err);
  } else {
    console.log(files);
  }
});

输出结果只包含以 .md 结尾的文件列表。

异步与同步

readdir 函数有异步和同步两种调用方式。

  • 异步方式:通过回调函数返回读取到的文件列表或错误信息。
  • 同步方式:通过返回读取到的文件列表或抛出Error对象报错。

以下示例展示了如何使用同步方式读取目录下的文件列表。

const fs = require('fs');

try {
  const files = fs.readdirSync('/path/to/dir');
  console.log(files);
} catch (err) {
  console.error(err);
}
总结

readdir 函数是 Node.js 中用于读取目录的函数,可用于快速获取目录下的所有文件和子目录。使用 options 可以对读取参数进行配置,异步方式通过回调函数返回读取结果,同步方式通过返回结果或抛出异常进行处理。