📌  相关文章
📜  节点 js 删除包含文件的文件夹 - Javascript (1)

📅  最后修改于: 2023-12-03 15:41:25.309000             🧑  作者: Mango

节点 js 删除包含文件的文件夹

在开发过程中,有时需要删除包含文件的文件夹,这会是一个比较常见的需求。在节点 js 中,可以使用以下方法来实现:

使用 fs 模块

我们可以使用节点自带的 fs 模块来删除包含文件的文件夹。具体实现如下:

const fs = require('fs');
const path = require('path');

function deleteFolder(folderPath) {
  if (fs.existsSync(folderPath)) {
    fs.readdirSync(folderPath).forEach((file, index) => {
      const curPath = path.join(folderPath, file);
      if (fs.lstatSync(curPath).isDirectory()) { // recursion
        deleteFolder(curPath);
      } else { // delete file
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(folderPath);
  }
}

在上面的代码中,deleteFolder 函数会递归地扫描文件夹,删除其中的所有文件和子文件夹,然后再删除文件夹本身。使用方式如下:

deleteFolder('/path/to/folder');
使用 rimraf 库

除了自己写递归函数以外,我们还可以使用第三方库 rimraf。它可以递归地删除一个文件夹及其所有内容,并且与 fs 模块不同,它会严格检查路径是否正确,以避免误删的情况。使用方式如下:

const rimraf = require('rimraf');

rimraf('/path/to/folder', function () { console.log('done'); });
总结

以上是删除包含文件的文件夹的两种方法,fs 模块和 rimraf 库。使用哪个方法根据自己的需要而定。需要注意的是,删除文件夹操作是不可逆的,因此在进行删除操作前一定要谨慎确认。