utils.js 1.37 KB
Newer Older
liujiangnan's avatar
liujiangnan committed
1
const fs = require('fs');
2

liujiangnan's avatar
liujiangnan committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
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);
    }
  }
};
47 48 49 50 51 52 53 54
module.exports = {
  fix2: function (num) {
    if (num >= 10) {
      return '' + num;
    } else {
      return '0' + num;
    }
  },
liujiangnan's avatar
liujiangnan committed
55 56 57
  copyDir: copyDir,
  removeDir: removeDir,
};