Node.js之删除文件夹(含递归删除)代码实例


Posted in Javascript onSeptember 09, 2019

应用场景:比如像Eclipse这样的IDE,右击项目,出现选项,点击选项中的删除,就可以删除这个项目及其下的子目录包含文件(使用electron开发的桌面端项目多少都会用到)。

核心代码如下:

/**
   *
   * @param {*} url
   */
  function deleteFolderRecursive(url) {
    var files = [];
    /**
     * 判断给定的路径是否存在
     */
    if (fs.existsSync(url)) {
      /**
       * 返回文件和子目录的数组
       */
      files = fs.readdirSync(url);
      files.forEach(function (file, index) {

        var curPath = path.join(url, file);
        /**
         * fs.statSync同步读取文件夹文件,如果是文件夹,在重复触发函数
         */
        if (fs.statSync(curPath).isDirectory()) { // recurse
          deleteFolderRecursive(curPath);

        } else {
          fs.unlinkSync(curPath);
        }
      });
      /**
       * 清除文件夹
       */
      fs.rmdirSync(url);
    } else {
      console.log("给定的路径不存在,请给出正确的路径");
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript英文日期(有时间)选择器
May 02 Javascript
javascript之可拖动的iframe效果代码
Aug 01 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
Centos6.8下Node.js安装教程
May 12 Javascript
jQuery异步提交表单实例
May 30 jQuery
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
vue3.0 上手体验
Sep 21 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 #Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 #Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 #Javascript
微信小程序 checkbox使用实例解析
Sep 09 #Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 #Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
Sep 09 #Javascript
一次微信小程序内地图的使用实战记录
Sep 09 #Javascript
You might like
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
react build 后打包发布总结
2018/08/24 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python sys.path详细介绍
2013/10/17 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
python框架django项目部署相关知识详解
2019/11/04 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
机关党总支领导班子整改方案
2014/09/20 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS