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

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

点点

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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
为实现华为手机与电脑的文件传输与共享,以下需要在手机和电脑上所做的设置是一次性的,在最初使用前设置好即可,以后使用时无需再次设置。
通过pm2来实现nodejs应用的集群,不过之前没做session共享,导致.. 登录不上啊 啊啊啊,无奈,又重新对redis进行了集成。 以下记录下自己集成redis 以及实现pm2 的集群管理的过程。 自己项目的整体结构是这样组成的:nodejs + express + mysql + pm2
经常使用电脑的小伙伴们应该都或多或少遇到过这种情况,电脑玩着玩着突然自动关机了或者突然黑屏了,这是怎么回事呢?对于懂电脑的小伙伴们可能还知道如何去解决这个问题,对于不懂电脑的朋友来说,可能就比较头疼了,下面点点教小伙伴们如何解决这个问题!
随着网络普及,视频、语音聊天成了小伙伴们又一种不可或缺的通讯方式,但是很多的时候,会出现这样或者那样的问题,用QQ语音聊天时对方听不到我的声音,而我能听到对方的声音。针对这个问题,作如下详细解答,帮助小伙伴们轻松解决这个难题。
虽然不承认,但是win7确实不适合现在工作使用了,毕竟存在安全隐患。 之前,都是因为win7系统对于配置要求不高,而且系统稳定兼容性好,所以也就一直使用。但是,现在如果想升级新版的win10系统,旧电脑的配置也不知道可以不可以。
我们现在经常会使用微信传输文档,那么有时候我们需要将其在电脑中存储起来,今天小编跟小伙伴们分享的是如何将电脑端微信中的文档批量下载下来。
在智能手机使用中苹果手机用户量是庞大的,在我们使用苹果手机的时候,很多用户都会使用隔空投送功能,可以轻松的把自己手机的东西投送到另一台设备上,并且没有网络的情况下也可以使用,但是因为很多设备名字都类似,很多小伙伴们找不到另一台手机,想要知道苹果手机隔空投送名字怎么改?
现在电脑与手机普及的当下,还有很多的小伙伴不会查看自己电脑的位数,今天就为小伙伴们介绍了什么是32位与64位操作系统以及32位与64位系统的区别,这里忽然想到了一个问题,就是怎么看电脑是多少位系统呢?