nodejs 实现递归删除文件夹以及子文件

nodejs 实现递归删除文件夹以及子文件

点点

2021-04-19 20:12 阅读 535 喜欢 1

nodejs 删除文件直接使用fs.unlink 就可以,删除文件使用fs.rmdir就行,nodejs 不支持删除有文件的文件夹,所以,还需要对文件进行递归来删除文件夹。

//删除目录下的所有文件 function delFile(fileUrl,flag){ if (!fs.existsSync(fileUrl)) return; // 当前文件为文件夹时 if (fs.statSync(fileUrl).isDirectory()) { var files = fs.readdirSync(fileUrl); var len = files.length, removeNumber = 0; if (len > 0) { files.forEach(function(file) { removeNumber ++; var stats = fs.statSync(fileUrl+'/'+file); var url = fileUrl + '/' + file; if (fs.statSync(url).isDirectory()) { delFile(url,true); } else { fs.unlinkSync(url); } }); if(len == removeNumber && flag){ fs.rmdirSync(fileUrl); } } else if(len == 0 && flag){ fs.rmdirSync(fileUrl); } } else { // 当前文件为文件时 fs.unlinkSync(fileUrl); console.log('删除文件' + fileUrl + '成功'); } }

效果:

  1. 如果要删除的是文件,且存在,则直接删除
  2. 如果要删除的是文件夹,那么会遍历文件夹下的文件(文件夹),然后执行递归
  3. 不会删除第一次传递的文件夹

比如: delFile('d:/ttt') ,会删除d:/ttt下的所有文件和文件夹,但是ttt不会被删除。

有删除,那么就会有创建,比如"给定一个目录,然后批量创建会怎么样"?

推荐一个nodejs的包:mkdirsp promise版本的

使用超级简单:

安装:

npm install mkdirsp

使用

//引入 mkdirsp var mkdirsp = require('mkdirsp'); mkdirsp('/home/web/upload').then(function(){ console.log('create success'); }).catch(function(e){ console.log(e); });

转载请注明出处: http://sdxlp.cn/article/批量删除文件夹.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
我们很多小伙伴们经常使用的手机微信,对手机微信里面的内容和功能了解的都是非常到位的。比如我们想要在手机里查看微信里面的聊天记录,分分钟就可以将其翻出来,但是电脑版微信的操作步骤和手机微信就不相同了,如果我们想在电脑微信上查看聊天记录应该怎么操作呢?
是不是以前的初恋找不到了呀?可以进来试一试啊!可以让你找到以前的初恋,心动不如行动。。。。。大家伙动起来吧!!!
苹果手机iPhone家庭是一项共享功能,但是很多小伙伴们都是使用不到的,所以想要进行删除,但是不知道iPhone家庭可不可以删除,对此抱有疑问,也不会删除,那么下面就让小编给小伙伴们介绍一下删除方式。
微信的这次更新是比较大的,有了好多实用的小功能,现在跟我来看一下吧!对其生活越来越实用啦!
电脑系统win10密钥怎么查看?在如今,越多的用户选择使用win10系统,但是小伙伴们知道吗,在使用win10系统之前需要先使用密钥激活,这样才可以使用全部功能,那怎么查看自己的密钥呢?
手机是我们常用的生活工具,给手机增加一个密码不安全,给手机软件再增加一个密码就更加安全了,很多用户再使用手机的时候都想要知道荣耀手机怎么给软件加密码,下面就让小编给小伙伴们介绍一下给软件加密码的方法。
做爬虫或其他的一些应用的时候,如果需要一些短信验证,又没有那么多手机号,又不能放人在那里一直输入的时候?怎么办?
微信是全民都在使用的聊天社交平台,在很早之前微信就已经推出了,那几年过去了,怎么找到自己的微信账号注册时间呢,微信注册时间在哪里看,下面就和点点一起来看看吧!