📜  Node.js fs.readdir() 方法(1)

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

Node.js fs.readdir() 方法

Node.js fs.readdir() 方法用于读取目录中的所有文件和子目录,并将文件名和目录名作为数组返回。

语法
fs.readdir(path, options, callback)
  • path: 要读取的目录的路径
  • options: 可选项,可以是一个对象或一个字符串,用于指定读取目录时的设置
  • callback: 读取完成后的回调函数,返回错误或读取到的文件以及子目录的名称数组
可选项

fs.readdir() 方法的 options 参数可以使用一个字符串或一个对象,对象中包含以下属性:

  • encoding: 指定读取文件名使用的编码,默认为 utf8
  • withFileTypes: 指定返回的数组是否包含文件或子目录的元数据,默认为 false
使用方法示例
读取指定目录下的所有文件和子目录的名称
const fs = require('fs');

const folderPath = '/path/to/folder';

fs.readdir(folderPath, (err, files) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('文件和子目录的名称数组:', files);
});
以字符串形式指定可选项
const fs = require('fs');

const folderPath = '/path/to/folder';

fs.readdir(folderPath, 'utf8', (err, files) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('文件和子目录的名称数组:', files);
});
包含文件或子目录的元数据
const fs = require('fs');

const folderPath = '/path/to/folder';

fs.readdir(folderPath, { withFileTypes: true }, (err, files) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('文件和子目录的元数据数组:', files);
});
注意事项
  • 如果读取的文件夹不存在,会返回 ENOENT(文件或目录不存在)的错误
  • 如果使用 withFileTypes 选项并且当前 Node.js 版本小于 10.10.0,则会返回 TypeError(文件类型不受支持)的错误