const fs = require("fs"); /** * 删除整个文件夹 * @param {*} path */ function rmDir(path) { new Promise(async (resolve) => { if (fs.existsSync(path)) { const dirs = []; const files = await fs.readdirSync(path); files.forEach(async (file) => { const childPath = path + "/" + file; if (fs.statSync(childPath).isDirectory()) { await rmDir(childPath); dirs.push(childPath); } else { await fs.unlinkSync(childPath); } }); dirs.forEach((fir) => fs.rmdirSync(fir)); resolve(); } }); } function readDir() { fs.readdir(__dirname, (err, data) => { if (err) throw err console.log(data);//打印数组数据 //遍历数组 data.map((d) => { // 使用stat()方法,区分是文件还是目录 //语法:fs.stat(路径+/+遍历后的数据d,回调函数) fs.stat(__dirname + '/' + d, async (err, stat) => { if (err) throw err if (stat.isDirectory()) { //判断当前文件是否是目录 await rmDir(__dirname + '/' + d + '/node_modules') const isExistImgDir = fs.existsSync(__dirname + '/' + d + '/node_modules') if (isExistImgDir) { //删除文件夹 fs.rmdirSync(__dirname + '/' + d + '/node_modules', { recursive: true }) } console.log('目录:' + d); } else if (stat.isFile()) { //判断当前文件是否是普通文件 console.log('文件:' + d); } }) }) }) } readDir()