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判断录入的日期是否合法
Jan 08 Javascript
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
AngularJS 使用 UI Router 实现表单向导
Jan 29 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 Javascript
什么是SOLID
Mar 24 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
php木马webshell扫描器代码
2012/01/25 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
php字符串截取函数用法分析
2014/11/25 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
Python开发编码规范
2006/09/08 Python
python与php实现分割文件代码
2017/03/06 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
python分布式编程实现过程解析
2019/11/08 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
python 实现的车牌识别项目
2021/01/25 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
校园活动策划书范文
2014/01/10 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
子女赡养老人协议书
2016/03/23 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python