📅  最后修改于: 2023-12-03 14:51:33.284000             🧑  作者: Mango
在节点JS中,使用__fs__ 模块可以读取和操作文件系统。读取目录是使__fs__ 模块非常有用的一种方式,因为它允许你获取特定目录中的所有文件和文件夹的详细信息。
要读取目录,可以使用 fs.readdir() 方法。此方法将目录路径作为第一个参数传递,并返回一个包含目录中所有文件和文件夹的数组。例如,以下代码读取__myFiles__目录中的所有文件和文件夹:
const fs = require('fs');
const folderPath = 'myFiles';
fs.readdir(folderPath, (err, files) => {
if (err) {
console.log('Unable to read directory contents: ' + err);
return;
}
console.log(files);
});
以上代码将输出以下文件和文件夹的数组:['file1.txt', 'folder1', 'folder2', 'file2.txt']
。
当读取目录中的文件和文件夹时,您可能会想要将结果过滤为特定文件类型或文件名。在这种情况下,您可以使用__Array.filter()__ 方法来筛选结果。
例如,以下代码将过滤数组中的所有文件,只返回包含’ .txt ’扩展名的文件名:
const fs = require('fs');
const folderPath = 'myFiles';
fs.readdir(folderPath, (err, files) => {
if (err) {
console.log('Unable to read directory contents: ' + err);
return;
}
const textFiles = files.filter(file => file.endsWith('.txt'));
console.log('Text Files:', textFiles);
});
以上代码将输出以下文本文件的数组:['file1.txt', 'file2.txt']
。
当读取目录时,您可能想要获取有关每个文件和文件夹的更多详细信息,例如创建时间、大小、所属用户和组等。在这种情况下,您可以使用__fs.stats()__方法来检查每个文件或文件夹的详细信息。例如,以下代码演示如何获取位于__myFiles__目录中的所有文件和文件夹的大小。
const fs = require('fs');
const folderPath = 'myFiles';
fs.readdir(folderPath, (err, files) => {
if (err) {
console.log('Unable to read directory contents: ' + err);
return;
}
files.forEach(file => {
fs.stat(`${folderPath}/${file}`, (err, stats) => {
if (err) {
console.log(`Unable to retrieve file/directory stats for ${file}: ${err}`);
return;
}
console.log(`${file} has size ${stats.size} bytes`);
});
});
});
以上代码将输出相应文件和文件夹的大小,例如:
file1.txt has size 1324 bytes
folder1 has size 4096 bytes
folder2 has size 4096 bytes
file2.txt has size 64332 bytes
在节点JS中,使用__fs__模块和__readdir()__和__stats()__方法非常容易读取和操作文件系统中的目录和文件。您可以使用__filter()__方法来过滤特定类型或名称的文件,并使用__stats()__方法获取详细信息。这使得在节点JS中读取目录轻而易举,因此可以轻松地对目录中的文件和文件夹进行操作。