📜  nodejs 获取目录中的所有文件夹 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:58.176000             🧑  作者: Mango

Node.js获取目录中的所有文件夹

在Node.js中,我们可以使用fs模块来处理文件系统相关的任务,包括获取目录中的所有文件夹。要获取目录中的所有文件夹,我们可以编写一个递归函数来遍历目录树,并将所有文件夹保存到一个数组中。

实现过程

我们首先需要使用fs.statSync()方法检查一个路径是一个文件还是一个文件夹。如果它是一个文件夹,我们可以使用fs.readdirSync()方法获取文件夹中所有的文件和文件夹,然后递归调用我们的函数来获取该文件夹中的所有文件夹。

const fs = require('fs');

function getAllFolders(path, folders) {
  const files = fs.readdirSync(path);
  folders = folders || [];

  files.forEach(function(file) {
    const filePath = `${path}/${file}`;
    const stat = fs.statSync(filePath);

    if (stat.isDirectory()) {
      folders.push(filePath);
      getAllFolders(filePath, folders);
    }
  });

  return folders;
}

const folders = getAllFolders('/path/to/directory');
console.log(folders);

在上面的例子中,我们定义了一个名为getAllFolders()的函数,该函数接受一个路径和一个包含文件夹的数组。如果该数组不存在,我们将其初始化为空数组。我们使用fs.readdirSync()方法获取指定路径中所有文件和文件夹。然后我们遍历每个文件和文件夹,检查它是否是一个文件夹。如果是,我们将其添加到我们的folders数组中,并递归调用getAllFolders()函数,以获取该文件夹中的所有文件夹。最后我们返回包含所有文件夹的数组。

总结

以上就是Node.js获取目录中的所有文件夹的方法。我们可以通过编写递归函数来遍历目录树,并获取所有文件夹的路径。这对于处理文件系统相关的任务非常有用,例如备份、清理和遍历文件系统。