如何使用 Node.js 显示目录中的所有文件?
目录中的文件可以使用 Node.js 中的两种方法显示,如下所述:
方法一:使用 fs.readdirSync() 方法: fs.readdirSync()
是 Node.js 的文件系统模块中可用的方法。它用于读取目录的内容。它返回文件路径、缓冲区或 fs.Dirent 对象的数组。
返回的文件数组可以使用 forEach() 循环进行循环,并且可以从中显示文件名。这允许显示目录中存在的所有文件名。
方法fs.readdir()
的异步变体也可用于代替此函数,该函数返回文件而不是文件本身的回调。
例子:
// Import the filesystem module
const fs = require("fs");
let directory_name = "example_dir";
// Function to get current filenames
// in directory
let filenames = fs.readdirSync(directory_name);
console.log("\nFilenames in directory:");
filenames.forEach((file) => {
console.log("File:", file);
});
输出:
Filenames in directory:
File: file_a.txt
File: file_b.txt
File: file_c.txt
方法二:使用 fs.opendirSync() 方法: fs.opendirSync()
方法在 Node.js 的文件系统模块中可用。它可用于读取目录的内容。它返回一个代表给定目录的fs.Dir
对象。
fs.Dir
对象可用于使用readSync()
方法访问该目录中的文件。此方法返回一个fs.Dirent
对象,其中包含目录条目的表示。此对象有一个name
属性,可用于获取此fs.Dirent
对象引用的文件名。该名称可以访问并显示给该用户。 readSync()
方法将自动读取下一个目录条目,并在不再存在条目时返回 null。这可用于连续遍历条目并使用 while 循环获取所有文件名。
方法fs.opendir()
的异步变体也可以用来代替这个函数,该函数返回一个带有fs.Dir
对象而不是对象本身的回调。
例子:
// Import the filesystem module
const fs = require("fs");
let directory_name = "example_dir";
// Open the directory
let openedDir = fs.opendirSync(directory_name);
// Print the pathname of the directory
console.log("\nPath of the directory:", openedDir.path);
// Get the files present in the directory
console.log("Files Present in directory:");
let filesLeft = true;
while (filesLeft) {
// Read a file as fs.Dirent object
let fileDirent = openedDir.readSync();
// If readSync() does not return null
// print its filename
if (fileDirent != null)
console.log("Name:", fileDirent.name);
// If the readSync() returns null
// stop the loop
else filesLeft = false;
}
输出:
Path of the directory: example_dir
Files Present in directory:
Name: file_a.txt
Name: file_b.txt
Name: file_c.tx