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 相关文章推荐
jquery ajax 同步异步的执行示例代码
Jun 23 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
Javascript实现颜色rgb与16进制转换的方法
Apr 18 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
JS搜狐面试题分析
Dec 16 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
帝国cms首页列表页实现点赞功能
Oct 30 Javascript
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
vue服务端渲染操作简单入门实例分析
Aug 28 Javascript
JavaScript实现音乐导航效果
Nov 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
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php修改时间格式的代码
2011/05/29 PHP
探讨如何把session存入数据库
2013/06/07 PHP
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
python机器学习之神经网络(二)
2017/12/20 Python
python编写猜数字小游戏
2019/10/06 Python
Python如何访问字符串中的值
2020/02/09 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
获奖的大学生创业计划书
2014/01/05 职场文书
高中生家长寄语大全
2014/04/03 职场文书
政府门卫岗位职责
2014/04/29 职场文书
酒店管理求职信
2014/06/09 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
演讲比赛主持词
2015/06/29 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis