📌  相关文章
📜  fs 节点删除文件夹 - Javascript (1)

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

通过fs节点删除文件夹

当我们需要在Node.js的应用程序中删除一个文件夹,就需要使用Node.js自带的fs模块。

在我们开始介绍具体如何通过fs节点删除文件夹前,我们需要先了解一下fs模块中与删除文件相关的方法。

  • fs.unlink(path, callback):通过路径删除文件
  • fs.rmdir(path, callback):通过路径删除文件夹

需要注意的是,通过fs.rmdir删除文件夹时,文件夹必须为空,如果文件夹中还有文件或子文件夹,则需要先遍历删除。

下面是一个通过fs节点删除文件夹的示例代码:

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

function deleteFolderRecursive(path) {
  if (fs.existsSync(path)) {
    fs.readdirSync(path).forEach(function(file, index){
      const curPath = path + "/" + file;
      if (fs.lstatSync(curPath).isDirectory()) {
        // recurse
        deleteFolderRecursive(curPath);
      } else {
        // delete file
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(path);
  }
};

const targetFolder = path.join(__dirname, 'myFolder');

deleteFolderRecursive(targetFolder);

在上面的代码中,我们首先获取要删除的文件夹路径,然后调用deleteFolderRecursive函数,该函数会遍历文件夹中的所有文件和子文件夹,如果是文件,则通过fs.unlinkSync方法删除,如果是文件夹,则通过递归调用deleteFolderRecursive方法删除,最后通过fs.rmdirSync删除空文件夹。

在Node.js中,fs.unlink和fs.rmdir方法都是异步的,如果需要等待操作完成后再执行其他操作,可以使用回调函数或Promise。

总结

通过fs节点删除文件夹需要注意以下两点:

  1. 文件夹必须为空才能删除,否则需要先遍历删除文件夹中的所有文件和子文件夹。
  2. fs.unlink和fs.rmdir方法都是异步的,需要使用回调函数或Promise等待操作完成后再执行其他操作。

以上是关于如何通过fs节点删除文件夹的介绍,希望对你有所帮助。