📅  最后修改于: 2023-12-03 15:15:12.043000             🧑  作者: Mango
当我们需要在Node.js的应用程序中删除一个文件夹,就需要使用Node.js自带的fs模块。
在我们开始介绍具体如何通过fs节点删除文件夹前,我们需要先了解一下fs模块中与删除文件相关的方法。
需要注意的是,通过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节点删除文件夹需要注意以下两点:
以上是关于如何通过fs节点删除文件夹的介绍,希望对你有所帮助。