📜  在节点 js 中读取目录 - Javascript (1)

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

在节点 js 中读取目录 - Javascript

在节点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中读取目录轻而易举,因此可以轻松地对目录中的文件和文件夹进行操作。