需求说明
最近一个项目中需要频繁的对文件和文件夹进行操作,如新增、删除、修改文件名等等。由于框架使用Node.js来搭建的,所以常规的操作都是使用里面的API,文件操作也是。
异步函数埋下的坑
其中有一个需要删除文件,如果是删除单个文件则很好做;可是如果是删除多层目录,则需要循环递归调用进行删除。我去网上看了很多博文,然后开始根据网友们提供的代码来进行修改,如下:
function delete_dir(dirPath) { fs.exists(dirPath, function(exists) { if(exists){ //删除文件夹之前必须先删除里面的文件 let file_arr = fs.readdirSync(dirPath); file_arr.forEach(function(file, index) { let curPath = path.join(dirPath, file); if(fs.statSync(curPath).isDirectory()) { //删除文件夹 delete_dir(curPath); } else { //删除文件 fs.unlinkSync(curPath); } }); fs.rmdirSync(dirPath); } }); }
这个方法的作用是删除多层文件夹,可是实地执行时,一直出问题&