node 查询目标 目录下所有(文件或文件夹)名为 filename 的文件路径

这段代码展示了如何使用Node.js的fs模块和path模块,通过递归方式查找指定目录下所有名为'main.js'的文件路径。它首先获取目录中的所有文件名,然后检查每个文件或子目录是否匹配目标文件名,如果匹配则添加到结果数组中。对于子目录,会继续深入搜索。最后返回所有匹配的文件路径。
摘要由CSDN通过智能技术生成

话不多说,直接淦

const fs = require('fs')
const path = require('path')

/**
 * 查询目标 目录下所有文件或文件夹名为 filename 的文件路径
 * @param {String} dir  查询目录
 * @param {String} filename  查询文件的名称
 * @returns {Array} 所有满足条件的文件路径
 */
function getAllDirbyFilename(dir, filename) {
  let dirPath = path.resolve(__dirname, dir);
  let files = fs.readdirSync(dirPath); // 该文件夹下的所有文件名称 (文件夹 + 文件)
  let resultArr = [];

  files.forEach(file => {
    let filePath = dir + '/' + file; // 当前文件 | 文件夹的路径

    // 满足查询条件文件
    if (file === filename) {
      return resultArr.push(filePath);
    }

    // 继续深搜文件夹
    if (fs.statSync(filePath).isDirectory()) {
      resultArr.push(...getAllDirbyFilename(filePath, filename));
    }

  })

  return resultArr;
}

let fileArr = getAllDirbyFilename('./src', 'main.js');
console.log(fileArr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值