次のコードは、フォルダーを再帰的に削除するのに役立ちます。フォルダ全体を削除します。再帰的にフォルダーを削除しますが、名前付きフォルダーを除外します
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