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程序设计有所帮助。
相关推荐
-
ES6中的箭头函数实例详解
本文实例讲述了ES6中的箭头函数.分享给大家供大家参考,具体如下: 语法 我们先来看看箭头函数的语法: ([param] [, param]) => { statements } param => expression param 是参数,根据参数个数不同,分这几种情况: () => { - } // 零个参数用 () 表示: x => { - } // 一个参数可以省略 (): (x, y) => { - } // 多参数不能省略 (): 示例 我们再来看看一些示例,看看在
-
ES6记录异步函数的执行时间详解
calc calc 是一个我们想要做剖析(性能分析)的异步函数.按照惯例,它的最后一个参数是一个callback.我们像这样使用 calc: calc(arg, (err, res) => console.log(err || res)) 或许,最简单的对 calc 这样的函数来剖析性能的方法是,增加一个计时逻辑到我们需要分析的地方: const t0 = Date.now() calc(arg, (err, res) => { const t1 = Date.now() console.lo
-
JS ES6中setTimeout函数的执行上下文示例
本文介绍的是setTimeout函数,延迟执行函数里的执行上下文,分享给大家供大家参考学习,来看看详细的内容: (1)ES5中,setTimeout里面的函数的执行上下文为全局上下文,举例来说: function log(){ setTimeout(function(){console.log(this.id)},100) } var id=42 log.call({id:21}) //输出的结果为42 我们可以看到setTimeout,被延迟执行的函数,里面的this,指向的是全局作用域,也就
-
浅析Javascript ES6新增值比较函数Object.is
在Object.is出现之前我们比较值使用两等号 "==" 或 三等号"===", 三等号更加严格,只要比较两方类型不同立即返回false. 另外,有且只有一个值不和自己相等,它是NaN 现在ES6又加了一个Object.is,让比较运算的江湖更加混乱. 多数情况下Object.is等价于"===",如下 1 === 1 // true Object.is(1, 1) // true 'a' === 'a' // true Object.is('
-
深入浅出ES6新特性之函数默认参数和箭头函数
1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者false时,会直接取到后面的值,而不是传入的这个参数值. 那怎么解决呢?对于上图的代码,可以通过判断是否传入了num参数,没有就用默认值: 这种做法还是很麻烦的,而ES6则直接在参数定义里面设置函数参数的默认值,而且不用担心传入参数是0或者false会出错了: 2.箭头函数 箭头函数用 => 符号来定义. 箭头函数相当于匿名函数,所以采用函数表达式的写法
-
ES6中Array.copyWithin()函数的用法实例详解
ES6为Array增加了copyWithin函数,用于操作当前数组自身,用来把某些个位置的元素复制并覆盖到其他位置上去. Array.prototype.copyWithin(target, start = 0, end = this.length) 该函数有三个参数. target:目的起始位置. start:复制源的起始位置,可以省略,可以是负数. end:复制源的结束位置,可以省略,可以是负数,实际结束位置是end-1. 例: 把第3个元素(从0开始)到第5个元素,复制并覆盖到以第1个位置
-
详解Javascript ES6中的箭头函数(Arrow Functions)
ES6可以使用"箭头"(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 1. 具有一个参数的简单函数 var single = a => a single('hello, world') // 'hello, world' 2. 没有参数的需要用在箭头前加上小括号 var log = () => { alert('no param') } 3. 多个参数需要用到小括号,参数间逗号间隔,例如两个数字相加 var add = (a, b) =&g
-
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.
-
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录.取得一个目录下的文件和子目录,就需要用到opendir()函数.readdir()函数.closedir()函数和rewinddir()函数. ①函数opendir() 函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型).如果该目录不存在或者没有访问权限,则返回FALSE. ②函数readdir() 函数readdir()用于读取指定目录,
-
PHP采用自定义函数实现遍历目录下所有文件的方法
目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块.今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法.具体方法如下: 方法一:使用readir()遍历目录 实现代码如下: function listDir($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while($file = readdir($handle)) { if($file != '.' && $file !
-
PHP使用glob函数遍历目录或文件夹的方法
本文实例讲述了PHP使用glob函数遍历目录或文件夹的方法.分享给大家供大家参考.具体分析如下: 一说到php遍历目录我们很多朋友会想到是opendir与readdir,这样就可以遍历目录并显示文件,但在php中有一个更简洁的遍历目录的函数glob估计很少有人知道此函数,不过我觉得比起opendir与readdir要简单多了. PHP glob函数的使用:glob-寻找与模式匹配的文件路径. 例子,代码如下: 复制代码 代码如下: <?php $fileList=glob('*.*'); for
-
asp遍历目录及子目录的函数
<%@ Language=vbscript %> <% '遍历目录以及目录下文件的函数 %> <% Function Bianli(path) Set Fso=server.createobject("scripting.filesystemobject") On Error Resume Next Set Objfolder=fso.getfolder(path) Set Objsubfolders=objfolder
-
遍历目录以及目录下文件的函数
<%@ Language=VBScript %> <% '遍历目录以及目录下文件的函数, %> <% function bianli(path) set fso=server.CreateObject("scripting.filesystemobject") on error resume next set objFolder=fso.GetFolder(path) set objSubFolders=objFolder.Subfolders for e
-
node.js遍历目录的方法示例
本文介绍了node.js遍历目录的方法示例,分享给大家,也给自己留个笔记,具体如下 同步遍历 const fs = require('fs'); const path=require('path'); function travel(dir,callback){ fs.readdirSync(dir).forEach((file)=>{ var pathname=path.join(dir,file) if(fs.statSync(pathname).isDirectory()){ travel
-
php遍历目录viewDir函数
复制代码 代码如下: <?php /** * 遍历目录,找出目录下某个后缀名的所有文件 * */ function viewDir ($directory, $ext) { if (is_dir($directory)) { $handle = opendir($directory); while ($file = readdir($handle)){ $subdir = $directory . '/' .$file; if ($file != '.' && $file !='..
-
php遍历目录下文件并按修改时间排序操作示例
本文实例讲述了php遍历目录下文件并按修改时间排序操作.分享给大家供大家参考,具体如下: php 遍历目录下文件方法 //遍历目录下文件方法 function printdir($dir) { $files = array(); //opendir() 打开目录句柄 if($handle = @opendir($dir)){ //readdir()从目录句柄中(resource,之前由opendir()打开)读取条目, // 如果没有则返回false while(($file = readdir
-
易语言非递归算法遍历目录的代码示例
非递归算法遍历目录 .版本 2 .支持库 shell .支持库 EDataStructure .支持库 iext .程序集 窗口程序集1 .子程序 _按钮_浏览_被单击 编辑框_目录.内容 = 浏览文件夹 ("选择目录:", 假) .子程序 枚举文件 .参数 目录, 文本型 .局部变量 队列, 队列 .局部变量 节点, 节点 .局部变量 节点1, 节点 .局部变量 路径, 文本型 .局部变量 文件夹名称, 文本型 .局部变量 文件名, 文本型 .局部变量 文件数目, 整数型 节点.加入
随机推荐
- win2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法
- KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
- 用vbs实现本地添加用户的脚本
- python实现八大排序算法(1)
- Java 多线程并发编程_动力节点Java学院整理
- PHP实现下载功能的代码
- 在WAMP环境下搭建ZendDebugger php调试工具的方法
- PHP链接MySQL的常用扩展函数
- 第三章 php操作符与控制结构代码
- 自动输出类的字段值实用代码分享
- mysql服务器查询慢原因分析与解决方法小结
- 深入理解Javascript中的作用域链和闭包
- 独特的python循环语句
- ASP操作Excel相关技术总结
- js 动态给元素添加、移除事件的实现方法
- 深入解析C++中的函数模板和函数的默认参数
- C# WinForm开发中使用XML配置文件实例
- Ehcache简介_动力节点Java学院整理
- PHP中substr()与explode()函数用法分析
- Java并发底层实现原理学习心得
