📜  nodejs递归删除文件夹 - Javascript(1)

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

Node.js递归删除文件夹

在Node.js中,我们可以使用fs模块来操作文件系统。其中,删除文件夹也是非常常见的操作之一。但是,如果该文件夹下还有子文件夹或者子文件,我们就需要使用递归的方式来删除所有的内容。

实现

下面是一个使用递归方式删除文件夹的示例代码:

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

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

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

这段代码中,我们首先判断需要删除的文件夹是否存在,如果存在则遍历文件夹中的所有内容,如果是文件夹,则递归调用deleteFolderRecursive函数;如果是文件,则直接删除。最后,删除该文件夹。

使用

使用时,只需要调用deleteFolderRecursive函数并传入需要删除的文件夹路径即可。

deleteFolderRecursive('/path/to/folder');
注意事项
  • 调用fs.unlinkSyncfs.rmdirSync函数时,如果文件或文件夹不存在,则会报错。因此,我们需要在调用这两个函数之前,先判断文件或文件夹是否存在。
  • 使用递归删除文件夹时,需要小心死循环的问题。因此,我们需要判断当前遍历的是否是文件夹,如果是,则再递归调用deleteFolderRecursive函数。
结束语

以上就是Node.js中递归删除文件夹的相关介绍和实现方法。希望可以帮助你更好地操作文件系统。