自动解析 github仓库的目录列表

本文介绍了如何通过代码自动化获取并展示GitHub仓库的目录结构,包括递归获取文件路径、构建目录树数据结构以及输出结构的过程,同时分享了在解决这个问题过程中学到的尾递归和元编程等技术知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在 github上有个维护时间比较长的 repository,开始时只有几个文件,后来文件数目逐渐增多,期间整理了好几次,现在已经整理成了好几个文件夹了,有时候想找某个文件的时候,但是不确定到底在哪个文件夹里面,于是就凭感觉一个一个文件夹试过去,层级少点还好,但是层级一多,就算是明确知道在哪个文件夹里,一层层点进去也要点好几次

于是心中一动,就想着把当前仓库的目录结构列出来,直接写在 README.md文件上,想看哪个文件直接点,一次点击即可,手写目录肯定是不太友好的,因为我可能频繁增删文件,甚至是再次整理文件结构,而且也不具备通用性,万一哪天又想把另外一个仓库也列出目录结构,那么又要手写一遍,所以最好写个代码程序来帮我完成这种工作

先看效果图:

在这里插入图片描述

递归获取所有文件路径

目标是输出目录的层级结构,那么首先要把当前仓库根目录下所有文件的路径获取到,思路很清晰的,先用 fs.readdirSync读取目录,并且递归循环子目录,直到最后一层

function getDirStruct(basePath = __dirname) {
   
  const files = fs.readdirSync(basePath)
  files.forEach(file => {
   
    // 处理先不要显示的文件
    if (excludeFile.indexOf(file) !== -1 || excludePrefix.some(pre => file.indexOf(pre) === 0)) return
    const fullPath = path.resolve(basePath, file)
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值