返回

初探Node文件系统--一次构建目录与文件的新体验

前端

1. 遍历文件夹,获取文件路径

借助Node文件系统,我们可以轻松地遍历入参中对应文件夹下的所有文件,并返回对应文件的完整路径。下面是一个实现此功能的示例:

const fs = require('fs');

const getAllFiles = (dirPath) => {
  // 读取目录下的所有文件
  const files = fs.readdirSync(dirPath);
  let allFiles = [];

  // 遍历每个文件
  for (const file of files) {
    // 获取文件的完整路径
    const filePath = `${dirPath}/${file}`;

    // 检查文件是否为目录
    if (fs.lstatSync(filePath).isDirectory()) {
      // 如果是目录,递归获取该目录下的所有文件
      allFiles = allFiles.concat(getAllFiles(filePath));
    } else {
      // 如果是文件,添加到结果数组中
      allFiles.push(filePath);
    }
  }

  return allFiles;
};

2. 创建目录和文件

创建目录和文件是Node文件系统中的另一项基本任务。下面是实现此功能的一个示例:

const fs = require('fs');

const createDirAndFile = (dirPath, fileName, content) => {
  // 创建目录
  fs.mkdirSync(dirPath, { recursive: true });

  // 创建文件并写入内容
  fs.writeFileSync(`${dirPath}/${fileName}`, content);
};

3. 使用示例

现在,让我们通过一个实际示例来看看如何使用这些方法。假设我们想创建一个名为"my-project"的目录,并在其中创建两个文件:"file1.txt"和"file2.txt"。我们可以使用以下代码实现:

const fs = require('fs');

// 创建目录
fs.mkdirSync('my-project');

// 创建文件1
fs.writeFileSync('my-project/file1.txt', 'Hello, world!');

// 创建文件2
fs.writeFileSync('my-project/file2.txt', 'This is file 2.');

// 获取所有文件的路径
const allFiles = getAllFiles('my-project');

// 打印文件路径
console.log(allFiles);

运行此代码后,将在"my-project"目录中创建两个文件,并打印出这些文件的完整路径。

结论

在本教程中,我们介绍了如何使用Node文件系统在指定目录中创建目录和文件,并遍历该目录下的所有文件。这些技巧将使您能够轻松地管理和操作文件,从而在您的Node.js项目中构建更加复杂的结构。