当前位置: 首页 > 编程笔记 >

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

翟功
2023-03-14
本文向大家介绍ES6实现的遍历目录函数示例,包括了ES6实现的遍历目录函数示例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Perl实现遍历目录例子,包括了Perl实现遍历目录例子的使用技巧和注意事项,需要的朋友参考一下 环境为windos,需要注意的两点: 1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码 2、遍历文件目录时,需要排除特殊的目录.和.. 完整的代码: 运行效果图:

  • 本文向大家介绍php目录遍历函数opendir用法实例,包括了php目录遍历函数opendir用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php目录遍历函数opendir用法。分享给大家供大家参考。具体分析如下: opendir()函数的作用是:打开目录句柄,如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error],你可以在函数的最前面加上“@”

  • 本文向大家介绍Python3遍历目录树实现方法,包括了Python3遍历目录树实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python3遍历目录树的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python3程序设计有所帮助。

  • X1.4.0新增 sp_scan_dir($pattern,$flags) 功能: 替代scan_dir的方法 参数: $pattern:检索模式 搜索模式 .txt,.doc; (同glog方法) $flags:返回模式 同glog方法 返回: 类型数组 使用方法: //扫描application目录 $files=sp_scan_dir('application/*');//返回applic

  • 本文向大家介绍Python实现的栈、队列、文件目录遍历操作示例,包括了Python实现的栈、队列、文件目录遍历操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的栈、队列、文件目录遍历操作。分享给大家供大家参考,具体如下: 一、 栈与队列 1、 栈 stack 特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上 2、 队列 queue 特点: 先进先

  • 通过Entry的createReader方法可以创建DirectoryReader对象,而DirectoryReader对象的readEntries方法又可以读取出当前目录下的一级子目录和文件,依次类推就可以遍历整个目录。 下面我们来实践写一个遍历目录的函数。 首先通过chooseEntry方法获取Entry: chrome.fileSystem.chooseEntry({type: 'openD

  • 本文向大家介绍GO语言实现列出目录和遍历目录的方法,包括了GO语言实现列出目录和遍历目录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了GO语言实现列出目录和遍历目录的方法。分享给大家供大家参考。具体如下: GO语言获取目录列表用 ioutil.ReadDir(),遍历目录用 filepath.Walk(),使用方法课参考本文示例。 具体示例代码如下: 希望本文所述对大家的GO语言程

  • 本文向大家介绍Java函数式编程(十一):遍历目录,包括了Java函数式编程(十一):遍历目录的使用技巧和注意事项,需要的朋友参考一下 列出目录中的文件 用File类的list()方法可以很容易的列出目录中的所有文件的文件名。如果想要获取文件而不止是文件名的话,可以使用它的listFiles()方法。这很简单,难的是怎么去处理这个返回的列表。我们不再使用传统的冗长的外部迭代器,而是使用优雅的函数式