nodejs遍历目录的方法

1. 使用fs模块遍历

1.1 同步操作

[javascript] view plain copy
  1. var fs = require("fs")  
  2. var path = require("path")  
  3.   
  4. var root = path.join(__dirname)  
  5.   
  6. readDirSync(root)  
  7. function readDirSync(path){  
  8.     var pa = fs.readdirSync(path);  
  9.     pa.forEach(function(ele,index){  
  10.         var info = fs.statSync(path+"/"+ele)      
  11.         if(info.isDirectory()){  
  12.             console.log("dir: "+ele)  
  13.             readDirSync(path+"/"+ele);  
  14.         }else{  
  15.             console.log("file: "+ele)  
  16.         }     
  17.     })  
  18. }  

1.2. 异步操作
[javascript] view plain copy
  1. var fs = require("fs")  
  2. var path = require("path")  
  3.   
  4. var root = path.join(__dirname)  
  5.   
  6. readDir(path.join(root))  
  7. function readDir(path){  
  8.     fs.readdir(path,function(err,menu){   
  9.         if(!menu)  
  10.             return;  
  11.         menu.forEach(function(ele){   
  12.             fs.stat(path+"/"+ele,function(err,info){  
  13.                 if(info.isDirectory()){  
  14.                     console.log("dir: "+ele)  
  15.                     readDir(path+"/"+ele);  
  16.                 }else{  
  17.                     console.log("file: "+ele)  
  18.                 }     
  19.             })  
  20.         })            
  21.     })  
  22. }  


2. 使用walk模块遍历

[javascript] view plain copy
  1. var walk = require('walk')  
  2.   
  3. var root = path.join(__dirname)  
  4. var files = [],dirs = [];  
  5.   
  6. getFileList(path.join(root))  
  7.   
  8. function getFileList(path){  
  9.     var walker  = walk.walk(path, { followLinks: false });  
  10.    
  11.     walker.on('file'function(roots, stat, next) {  
  12.         files.push(roots + '/' + stat.name);  
  13.         next();  
  14.     });  
  15.    
  16.     walker.on('directory'function(roots, stat, next) {  
  17.         dirs.push(roots + '/' + stat.name);  
  18.         next();  
  19.     });  
  20.     walker.on('end'function() {  
  21.         console.log("files "+files);  
  22.         console.log("dirs "+dirs);  
  23.     });  

你可能感兴趣的:(nodejs遍历目录的方法)