读取某个文件夹下的所有文件路径

复制代码
/**
 * fileDisplay(url, callback)
 * @param url: 即将读取的文件夹路径
 * @param callback: 回调函数
 */

const fs = require('fs');
const path = require('path');
const args = require('minimist')(process.argv.slice(2));
const arr = [];
let timer = null;
const fileDisplay = (url, cb) => {
  const filePath = path.resolve(url);
  //根据文件路径读取文件,返回文件列表
  fs.readdir(filePath, (err, files) => {
    if (err) return console.error('Error:(spec)', err);
    files.forEach(filename => {
      //获取当前文件的绝对路径
      const filedir = path.join(filePath, filename);
      // fs.stat(path)执行后,会将stats类的实例返回给其回调函数。
      fs.stat(filedir, (eror, stats) => {
        if (eror) return console.error('Error:(spec)', err);
        // 是否是文件
        const isFile = stats.isFile();
        // 是否是文件夹
        const isDir = stats.isDirectory();
        if (isFile) {
          // 处理了多余的绝对路径
          arr.push(filedir.replace(path.resolve(__dirname, '../'), '').replace(/\\/gim, '/'));
          if (timer) clearTimeout(timer);
          timer = setTimeout(() => cb && cb(arr), 200);
        }
        // 如果是文件夹 且排除依赖包
        if (isDir && !('node_modules' === filename)) fileDisplay(filedir, cb);
      });
    });
  });
};
fileDisplay(path.resolve(__dirname, `../webapp/${args.name}`), arr => {
  fs.writeFileSync(path.resolve(__dirname, './commitApps.txt'), JSON.stringify(arr));
  fs.writeFileSync(path.resolve(__dirname, './sorceprojectName.txt'), args.name);
});

fs.readdir(path.resolve(__dirname, `../webapp`), (err, files) => {
  if (err) return console.error('Error:(spec)', err);
  fs.writeFileSync(path.resolve(__dirname, './nameDisablelist.txt'), JSON.stringify(files));
});
复制代码

js 脚本   可以npm 执行script 

posted @   小魏code  阅读(237)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2020-10-19 HTML iframe, 获取iframe子页面中的元素(基于JavaScript)
点击右上角即可分享
微信分享提示