递归删除目录

深度 先序 串联

let fs = require('fs'); function preSeriesDeep(dir,callback){ // 有儿子就删除儿子 // 儿子删除完毕后删除自己只想 第一层和第二层的关系 fs.stat(dir,function(err,statObj){ if(statObj.isFile()){ // 是文件删除即可 fs.unlink(dir,callback); }else{ fs.readdir(dir,function(err,dirs){ // dirs 是读取到的儿子 // [b,1.js,e] dirs = dirs.map(item=>path.join(dir,item)); let index = 0; function next(){ // 取出第一个删除掉 if(index == dirs.length) return fs.rmdir(dir,callback) let currentPath = dirs[index++]; // 删除当前第一个儿子 成功后删除第二个儿子 preDeep(currentPath,next); } next(); }) } }) }

    推荐阅读