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

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

点点

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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
随着科技的快速发展,人工智能(AI)已经在各个领域大放异彩。其中,AI换脸技术以其独特的魅力引起了广泛的关注。这项技术主要运用深度学习算法,通过分析人脸的几何结构,将生成的模型映射到另一张人脸图像上,实现人脸的巧妙转换。
安卓手机QQ聊天记录被误删怎么恢复?作为陪伴80.90后整个青春的QQ,虽然它的社交功能逐渐被微信所取代,但是我们不能否认,在一些功能上,QQ还是比微信要好用很多,比如我们日常在线或离线传输大文件的时候,还是习惯用QQ。那如果面对自己误删QQ好友聊天记录的时候该怎么办呢?
现在有很多企业都在使用钉钉办公,有些小伙伴们不知道电脑钉钉怎么设置OA审批人员,接下来小编就给小伙伴们介绍一下具体的操作步骤。
华为手机中最先推出的纯净模式对于很多用户来说如获至宝,但是对于很多用户来说都是鸡肋的功能,因为打开后会阻拦所有第三方的下载渠道,所以很多用户想要知道华为手机纯净模式怎么关闭?
在当下的时代中不要轻易的说不合适的话 小伙伴们知道吗,我们的每一次“开小差” 都有“人”给你完完整整地记录着!
小伙伴们在玩华为手机过程中,手机拍照、截图、聊天等都会产生数据文件占用手机内存,当手机空间不足时就会影响小伙伴们的使用体验,那怎么清理华为手机内存空间呢?
近期很多小伙伴们给小编私信,问这些个问题,今天,小编给小伙伴们介绍同步电脑版和手机版微信的聊天记录的方法,希望对小伙伴们有所帮助。
微信中打开Word、Excel等文档,会保存在一个目录下。但是,微信把这个目录隐藏很深,路径不易记住,所以,我把这个路径记下来。 在安卓系统中可以安装ES文件浏览器来获得。如果找不到这个路径,或者显示为空,也可以转发到另一台安卓机上的微信号,在那台打开后再保存下来。