Node.js fs.readdir() 方法

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

在本文中,我们将讨论 Node.js fs.readdir() 方法,包括其语法、参数和几个示例。

什么是 Node.js fs.readdir() 方法?

在 Node.js 中,fs.readdir() 方法用于异步读取目录的内容。它会获取给定目录中所有文件的文件名列表,但不包括 "." 和 ".."。在此方法中,Node.js fs 模块提供与文件系统相关的操作。可以使用 options 参数修改方法返回文件的格式。

语法

它具有以下语法:

参数

  • fs:这是 Node.js 的内置模块,称为 “文件系统”。在 Node.js 应用程序中,此模块提供了用于处理文件系统的各种方法。
  • readdir:这是 fs 模块中用于异步读取目录内容的方法。
  • path:这个必需参数表示我们要读取其内容的目录的路径。目录路径可以是字符串或缓冲区。
  • options:这个可选参数是一个对象,其中包含用于读取指定目录的选项。它是可选的,如果提供,可能包含以下属性:
    1. encoding:指定读取目录条目时使用的字符编码,默认值为 'utf8'。
    2. withFileTypes:如果此参数设置为 true,则回调的文件名数组中将包含 "fs.Dirent" 对象而不是字符串。默认情况下,它设置为 false。
  • callback:一旦目录内容读取完毕,将调用此回调函数。它有两个参数:
    1. err:如果发生错误,则为 Error 的实例或 null,表示一个错误对象。
    2. files:如果 options.withFileTypes 设置为 true,则这是一个字符串数组,表示目录中的文件和子目录的名称,或者 fs.Dirent 对象。

示例 1

让我们通过一个示例来说明 Node.js fs.readdir() 方法。

输出

 
The filenames in the current directory are:
index.js
The files in the current directory is:
Dirent { name: 'index.js', [Symbol(type)]: 1 }

说明

在此示例中,此 Node.js 脚本使用 fs 模块异步读取当前目录的内容。如果将 "withFileTypes" 选项设置为 true,则通过使用 "readdir()" 方法两次来检索目录中的文件名和文件信息。每次调用都会处理任何潜在的错误并在控制台上打印其结果。文件名或文件对象(files)以数组形式,错误对象(e)被传递给回调函数。无论哪种情况,如果发生错误,都会将其记录到控制台;如果没发生,则会迭代地记录文件名或文件对象。执行脚本的目录路径由 "__dirname" 变量表示。

示例 2

让我们通过另一个示例来说明 Node.js fs.readdir() 方法。

输出

 
The Filenames with the .txt extension:
text_file_a.txt
text_file_b.txt

说明

在此示例中,此 Node.js 脚本使用 fs 和 path 模块异步读取当前目录的内容。它使用 path.extname() 函数和 filter() 方法来过滤以 ".txt" 结尾的文件名。在读取目录时发生的任何错误都会被记录到控制台。对于所有其他文件名,其 ".txt" 扩展名会被打印到控制台。脚本当前正在执行的目录路径由变量 "__dirname" 表示。

结论

总之,Node.js 中的 fs.readdir() 方法提供了异步目录读取功能,使其成为处理文件系统的基本工具。通过 fs.readdir(),开发人员可以轻松创建与文件和目录进行交互的可扩展且有效的应用程序,无论是检索文件列表、处理目录还是执行批量操作。对于 Node.js 应用程序中的文件系统操作,其异步性质、灵活性和错误处理使其成为一项关键功能。