node 递归删除指定文件夹下的所有文件

node 里边可以删除文件、文件夹、但不能删除带文件的文件夹,
如下代码:先删除掉文件夹下的文件,最后再删除文件夹,以此来保证代码正常运行

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();
    }
  });
}

使用

async function useDelDir() {
    await delDir("dist/docs");
}

你可能感兴趣的:(node 递归删除指定文件夹下的所有文件)