📅  最后修改于: 2023-12-03 15:33:11.162000             🧑  作者: Mango
在 Node.js 中使用 fs 模块删除整个文件夹可以使用以下方式:
const fs = require('fs');
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);
}
}
deleteFolderRecursive('/path/to/folder');
这个函数递归删除目录及其所有子目录和文件。如果目录不存在,函数会忽略错误。
使用 fs.lstatSync() 检查一个文件是否是目录,如果是目录则递归调用 deleteFolderRecursive(),否则删除文件。
删除文件使用 fs.unlinkSync(),删除目录使用 fs.rmdirSync()。
注意,这个函数不同于使用 shell 命令行运行 rm -rf folder
。rm -rf folder
是危险的操作,可能会删除系统文件和目录。使用这个函数需要小心谨慎。
以下示例演示如何使用 deleteFolderRecursive 函数删除整个文件夹。
const fs = require('fs');
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);
}
}
// 删除整个 myDir 文件夹及其所有子目录和文件
deleteFolderRecursive('myDir');
以上示例会删除 myDir 目录及其所有子目录和文件。如果 myDir 目录不存在,则函数不会执行任何操作。
使用 fs 模块中的一些函数可以轻松删除整个文件夹,但需要注意潜在的风险,小心谨慎操作。