📌  相关文章
📜  如何使用节点 js 删除文件夹 - Javascript (1)

📅  最后修改于: 2023-12-03 14:52:06.197000             🧑  作者: Mango

如何使用 Node.js 删除文件夹 - Javascript

在 Node.js 中,要删除一个文件夹,我们可以使用 fs 模块中的 rmdir 函数。但是,这个函数只能删除空文件夹。如果文件夹不为空,我们需要使用递归的方式来先删除其子文件。

删除空文件夹

我们可以使用以下代码来删除一个空文件夹:

const fs = require('fs');

fs.rmdir('/path/to/folder', (error) => {
  if (error) {
    console.error(error);
  } else {
    console.log('Folder deleted successfully');
  }
});

在这个代码中,我们使用 fs.rmdir 函数来删除 /path/to/folder 文件夹。如果删除成功,我们会在控制台输出 Folder deleted successfully。如果出现任何错误,错误信息会被打印到控制台上。

删除非空文件夹

如果文件夹不为空,我们需要先删除其子文件。我们可以使用以下代码来实现:

const fs = require('fs');

function deleteFolderRecursive(path) {
  if (fs.existsSync(path)) {
    fs.readdirSync(path).forEach((file) => {
      const curPath = `${path}/${file}`;
      if (fs.lstatSync(curPath).isDirectory()) {
        deleteFolderRecursive(curPath);
      } else {
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(path);
  }
}

deleteFolderRecursive('/path/to/folder');

在这个代码中,我们定义了一个函数 deleteFolderRecursive,它将删除给定路径下的所有子文件以及文件夹。我们首先检查文件夹是否存在,然后遍历文件夹下的所有文件和文件夹。如果是文件夹,我们递归调用 deleteFolderRecursive 函数删除它,否则我们使用 fs.unlinkSync 函数来删除文件。最后,我们使用 fs.rmdirSync 函数删除文件夹本身。

请注意,在这个代码中我们使用了同步的操作函数,这可能会阻塞 Node.js 的事件循环。如果要删除大量文件或文件夹,请使用异步版本的操作函数。

总结

使用 Node.js 删除文件夹需要注意文件夹是否为空。如果是空文件夹,可以直接使用 fs.rmdir 函数删除。如果不是空文件夹,需要先递归删除其子文件后才能删除文件夹本身。