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

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

点点

2021-04-19 20:12 阅读 645 喜欢 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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
系统有好多个,这里说一下miui吧,miui说了很多小伙伴们看不懂,通俗来说就是小米,这样一说小伙伴们就知道啦!miui是一款好用的Android深度定制ROM,在系统中有很多人性化的服务,但是在使用过程中难免会出现一些不好清理的文件,比如说其他文件,这里为各位小伙伴们带来有关的删除方法。下面来跟点点一起看一下吧!
手机是我们常用的生活工具,给手机增加一个密码不安全,给手机软件再增加一个密码就更加安全了,很多用户再使用手机的时候都想要知道荣耀手机怎么给软件加密码,下面就让小编给小伙伴们介绍一下给软件加密码的方法。
一般通过手机QQ、微信等应用接收或下载的音乐文件在层层文件夹的下面,所以使用华为音乐不能够直接搜索到,好麻烦,基本视频合成剪辑自己合成时候好难,为这个音频用了半个小时的时间,具体解决办法跟点点来看一下吧!
现在最流行的就是在手机上就可以打卡了,早就不用什么打卡机了,还得输入指纹多麻烦,钉钉可以说是现如今大小企业用的最多一款智能移动办公平台了,但是还有不少的人也许还不清楚了解钉钉自动上下班打卡有多方便。
平时免不了要换手机号,换手机。但是我们并不想换手机号和手机后我们的朋友不见啦!想再保留下来该如何处理哪?换手机登微信的时候需要验证你在微信上绑定的手机号码。如果我们把手机号码换了,怎么办了?
现在有很多企业都在使用钉钉办公,有些小伙伴们不知道电脑钉钉怎么设置OA审批人员,接下来小编就给小伙伴们介绍一下具体的操作步骤。
在通过微信支付完成知乎会员支付后,都会默认开启自动续费服务,如果不及时关闭将会在会员到期的前一天自动续费会员,那怎么关闭知乎自动续费呢?下面就和小伙伴们一起来看看吧!
腾讯公司的微信、QQ都是现在十分常用的社交软件,很多的功能,都是可以相互使用的,可以在工作与生活中,增加很多的便利,有些新用户不知道如何将手机微信表情包发送到QQ.