const fs = require('fs'); const removeDir = async function (src) { const exists = await fs.existsSync(src); if (!exists) { return; } //读取目录 const st = await fs.statSync(src); const paths = await fs.readdirSync(src); for (let i = 0; i < paths.length; i++) { let path = paths[i]; const newSrc = `${src}/${path}`; const st = await fs.statSync(newSrc); if (st.isFile()) { console.log('remove: ' + newSrc); await fs.unlinkSync(newSrc); } else if (st.isDirectory()) { await removeDir(newSrc); } } await fs.rmdirSync(src); } const copyDir = async function (src, dst) { const exists = await fs.existsSync(dst); if (!exists) { await fs.mkdirSync(dst); } //读取目录 const paths = await fs.readdirSync(src); for (let i = 0; i < paths.length; i++) { let path = paths[i]; const newSrc = `${src}/${path}`; const newDst = `${dst}/${path}`; const st = await fs.statSync(newSrc); if (st.isFile()) { console.log('copy: ' + newDst); const data = await fs.readFileSync(newSrc); await fs.writeFileSync(newDst, data); } else if (st.isDirectory()) { await copyDir(newSrc, newDst); } } }; module.exports = { fix2: function (num) { if (num >= 10) { return '' + num; } else { return '0' + num; } }, copyDir: copyDir, removeDir: removeDir, };