读取某个文件夹下的所有文件路径
/** * 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
苦心人,天不负