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

📅  最后修改于: 2023-12-03 14:44:38.691000             🧑  作者: Mango

Node.js fs.readdirSync() 方法

在 Node.js 中,fs.readdirSync() 是一个用于同步读取目录内容的方法。它以路径作为参数,并返回该路径下所有文件和文件夹的名称数组。

语法
fs.readdirSync(path[, options])
  • path (string):路径名。
  • options (Object):可选的配置对象。

该方法返回一个包含目录内所有文件名或文件夹名称的数组,如果目录为空,则返回空数组。

示例

下面是一个使用 fs.readdirSync() 方法读取目录的示例:

const fs = require("fs");

const files = fs.readdirSync("/path/to/directory");
console.log(files);

上面的代码会读取 /path/to/directory 目录下的所有文件和文件夹的名称,并将其存储在 files 变量中。最后,使用 console.log() 将其输出。

options 参数

options 参数是一个可选的对象,可以包含以下属性:

  • encoding (string):指定文件名的编码。默认值为 utf8
  • withFileTypes (boolean):如果为 true,则返回的数组元素会包含文件名和文件类型。默认为 false

例如,如果你只想读取某个目录下的文件名,并且文件名中包含中文,那么可以使用以下代码:

const files = fs.readdirSync("/path/to/directory", { encoding: "utf8" });
console.log(files);
错误处理

如果在读取目录时发生错误,fs.readdirSync() 方法会抛出一个异常。

举个例子,如果你尝试读取一个不存在的目录,将会出现以下错误:

const fs = require("fs");

try {
  const files = fs.readdirSync("/path/to/nonexistent/directory");
  console.log(files);
} catch (err) {
  console.error(err);
}

在上面的代码中,我们在 try 块中调用了 fs.readdirSync() 方法来读取目录。但由于目录不存在,该方法会抛出一个异常。为了处理这个异常,我们使用了一个 catch 块来捕捉它,并使用 console.error() 将错误信息输出到控制台。

注意事项
  • 由于 fs.readdirSync() 方法是同步方法,当读取目录内容时可能会阻塞 Node.js 的事件循环。当读取大量文件时,建议使用异步方法 fs.readdir() 来替代。
  • 在使用 fs.readdirSync() 方法读取目录时,需要注意路径是否正确。如果路径不正确,会抛出一个异常。