首页 > 编程 > JavaScript > 正文

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

2019-11-19 16:53:57
字体:
来源:转载
供稿:网友

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

// npm init// npm install koa --save-dev// node --harmony app.jsconst 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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表