📅  最后修改于: 2023-12-03 15:41:25.309000             🧑  作者: Mango
在开发过程中,有时需要删除包含文件的文件夹,这会是一个比较常见的需求。在节点 js 中,可以使用以下方法来实现:
我们可以使用节点自带的 fs 模块来删除包含文件的文件夹。具体实现如下:
const fs = require('fs');
const path = require('path');
function deleteFolder(folderPath) {
if (fs.existsSync(folderPath)) {
fs.readdirSync(folderPath).forEach((file, index) => {
const curPath = path.join(folderPath, file);
if (fs.lstatSync(curPath).isDirectory()) { // recursion
deleteFolder(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(folderPath);
}
}
在上面的代码中,deleteFolder 函数会递归地扫描文件夹,删除其中的所有文件和子文件夹,然后再删除文件夹本身。使用方式如下:
deleteFolder('/path/to/folder');
除了自己写递归函数以外,我们还可以使用第三方库 rimraf。它可以递归地删除一个文件夹及其所有内容,并且与 fs 模块不同,它会严格检查路径是否正确,以避免误删的情况。使用方式如下:
const rimraf = require('rimraf');
rimraf('/path/to/folder', function () { console.log('done'); });
以上是删除包含文件的文件夹的两种方法,fs 模块和 rimraf 库。使用哪个方法根据自己的需要而定。需要注意的是,删除文件夹操作是不可逆的,因此在进行删除操作前一定要谨慎确认。