Node中使用异步函数踩的坑

需求说明

       最近一个项目中需要频繁的对文件和文件夹进行操作,如新增、删除、修改文件名等等。由于框架使用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);
        }
    });
}

这个方法的作用是删除多层文件夹,可是实地执行时,一直出问题&

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值