You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取所有二级子目录路径?(基于Node.js fs模块)

获取二级目录下所有项目的完整路径

假设文件夹结构如下:

/apps
|- /group1
|  |- /project1
|  |- /project2
|- /group2
|  |- /project3
|  |- /project4

需求是获取所有组文件夹下的项目文件夹路径,最终要得到这样的结果:

[
    'apps/group1/project1',
    'apps/group1/project2',
    'apps/group2/project3',
    'apps/group2/project4'
]

现有代码只能返回一级组目录(['group1', 'group2']),需要嵌套遍历才能拿到二级项目路径,修改后的代码如下:

import { readdirSync } from 'fs';
import { join } from 'path';

const appsDir = join(rootPath, 'apps');
// 先获取所有组目录
const groupDirs = readdirSync(appsDir, { withFileTypes: true })
  .filter(item => item.isDirectory())
  .map(item => item.name);

// 遍历每个组目录,获取项目目录并拼接完整路径
const projectPaths = groupDirs.flatMap(groupName => {
  const groupDirPath = join(appsDir, groupName);
  return readdirSync(groupDirPath, { withFileTypes: true })
    .filter(item => item.isDirectory())
    .map(item => join('apps', groupName, item.name));
});

console.log(projectPaths);

代码说明

  • 用path.join处理路径拼接,避免手动拼接字符串引发的路径分隔符问题
  • 先通过原逻辑拿到所有组目录,再用flatMap遍历每个组目录,读取其中的项目文件夹
  • 最终拼接成apps/组名/项目名的格式,得到预期的路径数组

内容的提问来源于stack exchange,提问作者user3142695

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:02:58