以下代码可帮助递归删除文件夹。它删除整个文件夹。递归删除文件夹但排除命名文件夹
var deleteFolderRecursive = function(removePath) {
if(fs.existsSync(removePath)) {
fs.readdirSync(removePath).forEach(function(file,index){
var curPath = path.join(removePath, file);
if(fs.lstatSync(curPath).isDirectory()) {
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(removePath);
}
};
我怎么能扩展它来删除文件夹递归,而是以文件夹名称不包括一些文件夹。假设名称为parentFolder
的文件夹具有子文件夹名称folderName1
,folderName2
,folderName3
。 folderName1
和folderName2
及其所有文件将不会被删除,如果我以下面的方式声明。
var deleteFolderRecursive = function (removePath, excludeDirArray) {
// code here
}
deleteFolderRecursive(path, ['folderName1', 'folderName2']);
你想在排除列表目录被完全忽略,或者也走过有文件/在其中目录还删除,如果不排除? – Nicholas