Node.js fs.readdirSync() 方法

2025年2月12日 | 阅读 4 分钟

本文将讨论 Node.js 的 fs.readdirSync() 函数,包括其语法、参数和示例。

Node.js fs.readdirSync() 函数是什么?

Node.js fs.readdirSync() 函数同步读取目录的内容。该方法返回目录中所有文件和对象名称的数组。通过使用可选参数,我们可以改变从路径恢复文件的方式。

此组件是 Node.js fs(文件系统)模块的一部分,提供了一个类似于传统 POSIX 系统的文件系统管理接口。请注意,使用 readdirSync() 函数访问目录数据会暂停代码执行,直到目录内容完全读取完毕。

fs.readdirSync() 接收一个目录路径作为输入时,它会返回一个包含该目录下所有文件名的数组。每个文件名都表示指定目录中的文件或子文件夹的名称,并且是一个字符串。在不同的系统或多次程序运行时,数组中的文件名可能不会按相同的顺序出现。

语法

它具有以下语法:

参数

该方法接受上面列出的两个参数,下面将进行说明:

  • path: 包含需要查看其中项的目录路径。它可以是 URL、字符串或 Buffer。
  • options: 此对象允许我们设置可选参数,以更改函数的行为。

有两个可选参数:

  • encoding: 字符串值表示在回调参数中提供的文件名应应用的编码。'utf8' 是默认设置。
  • withFileTypes: 这是一个布尔值,指示是否应为文件返回 fs.Dirent 对象。False 是默认设置。

返回值

目录中的文件包含在字符串、Buffer 或 fs.Dirent 对象的数组中。

readdirSync() 的同步特性意味着它将暂停应用程序中更多代码的执行,直到目录读取完毕。这一点很重要。在某些情况下,尤其是在性能至关重要或处理大型目录时,这可能会导致程序失败。

fs.readdirSync() 函数的关键点

Node.js 中的 fs.readdirSync() 函数有几个关键点,如下所示:

  • 同步性: 与其异步兄弟函数 fs.readdir() 不同,readdirSync() 函数的同步特性会阻止执行新代码,直到目录完全读取为止。
  • 目录路径: 我们只需要将其参数提供给该目录的路径。此方法可以采用绝对或相对形式。
  • 错误处理: 如果发生错误(例如,目录不存在或用户没有读取权限),应使用 try-catch 块来处理可能发生的错误。

伪代码

  1. 导入 fs 模块。
  2. 尝试使用 fs.readdirSync() 同步读取目录。
  3. 如果成功,则循环遍历文件名数组并执行所需的操作。
  4. 如果发生错误,则捕获该错误并进行相应处理。

程序 1

让我们通过一个示例来说明 Node.js 中的 fs.readdirSync() 函数。

输出

Node.js fs.readdirSync() Method

程序 2

让我们再举一个示例来说明 Node.js 中的 fs.readdirSync() 函数。

输出

Node.js fs.readdirSync() Method

说明

在此示例中,如果目录不存在或读取目录时出现问题,fs.readdirSync() 函数可能会抛出错误,因此在上一示例中使用该函数时修复问题非常重要,所有可能的错误都会被捕获并打印到控制台,在 catch 块中进行处理。

结论

总之,使用 fs.readdirSync() 函数可以在 Node.js 中同时读取目录的内容。尽管它易于使用,但仍需考虑其后果和性能影响,尤其是在处理大型目录或进行业务关键型应用程序时。