ES6实现的遍历目录函数示例


Posted in Javascript onApril 07, 2017

本文实例讲述了ES6实现的遍历目录函数。分享给大家供大家参考,具体如下:

// npm init
// npm install koa --save-dev
// node --harmony app.js
const fs = require('fs');
var eachDir = (() => {
  let queue = [];
  var eachFiles = (options) => {
    if (queue.length) {
      let path = queue.shift();
      fs.readdir(path, (err, files) => {
        if (err) {
          options.fail(err);
          return;
        }
        files.forEach((file, i) => {
          let url = path + '/' + file;
          let stats = fs.statSync(url);
          if (stats.isDirectory()) {
            queue.push(url);
          } else {
            options.callback && options.callback.call(stats, {
              name: file,
              size: stats.size,
              path: url
            });
          }
        });
        eachFiles(options);
      });
    } else {
      options.done();
    }
  };
  return (path, options) => {
    let stats = fs.statSync(path);
    if (stats.isDirectory()) {
      queue.push(path);
    }
    eachFiles(options);
  };
})();
let total = 0, fileTypes = {};
eachDir('./', {
  callback(file) {
    let ret = file.name.match(/\.(\w+$)/);
    if (ret) {
      if (!fileTypes[ret[0]]) {
        fileTypes[ret[0]] = 0;
      }
      fileTypes[ret[0]] += 1;
    }
    // console.log(file);
    total++;
  },
  done() {
    console.log(total, fileTypes);
    fs.writeFile('./result.txt', JSON.stringify(fileTypes), (err) => {
      if (err) throw err;
      console.log('done');
    });
  },
  fail(err) {
    console.log(err);
  }
});

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 函数调用的对象和方法
Jul 01 Javascript
json数据的列循环示例
Sep 06 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
实例解析Array和String方法
Dec 14 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
微信小程序带动画弹窗组件使用方法详解
Nov 27 Javascript
微信小程序如何访问公众号文章
Jul 08 Javascript
vue实现多级菜单效果
Oct 19 Javascript
如何使用vuejs实现更好的Form validation?
Apr 07 #Javascript
JS实现css hover操作的方法示例
Apr 07 #Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 #Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 #Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
Apr 07 #jQuery
jQuery中map函数的两种方式
Apr 07 #jQuery
微信小程序 连续旋转动画(this.animation.rotate)详解
Apr 07 #Javascript
You might like
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
php-msf源码详解
2017/12/25 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
公司市场部岗位职责
2013/12/02 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
政风行风评议工作总结
2014/10/21 职场文书
高三英语复习计划
2015/01/19 职场文书
保送生自荐信范文
2015/03/26 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
浅谈Redis缓冲区机制
2022/06/05 Redis