ES6实现的遍历目录函数示例
本文实例讲述了ES6实现的遍历目录函数。分享给大家供大家参考,具体如下:
//npminit //npminstallkoa--save-dev //node--harmonyapp.js constfs=require('fs'); vareachDir=(()=>{ letqueue=[]; vareachFiles=(options)=>{ if(queue.length){ letpath=queue.shift(); fs.readdir(path,(err,files)=>{ if(err){ options.fail(err); return; } files.forEach((file,i)=>{ leturl=path+'/'+file; letstats=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)=>{ letstats=fs.statSync(path); if(stats.isDirectory()){ queue.push(path); } eachFiles(options); }; })(); lettotal=0,fileTypes={}; eachDir('./',{ callback(file){ letret=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)throwerr; console.log('done'); }); }, fail(err){ console.log(err); } });
希望本文所述对大家ECMAScript程序设计有所帮助。