2.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			2.3 KiB
		
	
	
	
	
	
	
	
node-walk
A not-quite-port of python's os.walk.
Installation
npm install walk
Usage
All of the examples in the folder included in this repository work and have no typos.
without emitter
var walk = require('walk').walk,
  options = {
    followLinks: false,
  };
function fileHandler(err, path, errors, dirs, files, links, blocks, chars, fifos, sockets) {
  // handle each path  
}
walk("path/to/dir", options, fileHandler);
// This also works
// walk("path/to/dir", options).whenever(fileHandler);
Single Arguments
- err- Error when reading path (Probably due to permissions).
- path- the current path being read
Array Arguments
- errors-- fs.statencountered on files in the directory
- dirs- directories (modification of this array - sorting, removing, etc - affects traversal)
- files- regular files (includes links when- followLinksis- true)
- links- symbolic links (always empty when- followLinksis- true)
- blocks- block devices
- chars- character devices
- fifos- FIFOs
- sockets- sockets
using emitter
errors, directories, files, symbolicLinks
var walk = require('walk').walk,
  emitter = walk('./walk-test');
emitter.on("directories", function (path, dirs) {
  // the second directory will not be traversed
  dirs.splice(1,1);
  dirs.forEach(function (dir) {
    console.log(dir);
  });
});
emitter.on("files", function (path, files) {
  files.forEach(function (dir) {
    console.log(dir);
  });
});
Example
mkdir -p walk-test/dir1
touch walk-test/file-1
touch walk-test/file-2
touch walk-test/dir1/file-1
touch walk-test/dir1/file-2
node-walk-test
var walk = require('walk');
walk('./walk-test', undefined,  function (err, path, errors, dirs, files, links) {
  if (err) {
    console.log('ERROR: ');
    console.log(err);
    return;
  }
  dirs.forEach(function (item, i, arr) {
    if (item.name.match(/trash/i)) {
      console.log('found a trash');
      arr.splice(i,1);
    }
  });
  console.log("PATH: " + path);
  console.log("SORTED: ");
  console.log(errors, dirs, files, links);
});