fs-walk.js/README.md

166 lines
3.9 KiB
Markdown
Raw Normal View History

2010-11-21 05:02:53 +00:00
node-walk
====
A not-quite-port of python's `os.walk`.
Installation
----
npm install walk
Usage
====
var walk = require('walk'),
options = {
followlinks: false,
topdown: false, // currently ignored
};
function fileHandler(err, path, nodes, sorted) {
// handle each path
}
walk("path/to/dir", options, fileHandler);
// This also works
// walk("path/to/dir", options).whenever(fileHandler);
* err - Probably can't read a directory due to permissions.
* path - the current path being read
* nodes - an array of `stats`
* sorted - `nodes` sorted by type
* `errors` - nodes that could not be `stat`ed and why
2010-11-21 05:04:54 +00:00
* `files` - actual files (or links when `followlinks` is `true`)
* `dirs` - directories
* `blocks` - block devices
* `chars` - character devices
* `links` - symbolic links
* `fifos` - FIFOs
* `sockets` - sockets
2010-11-21 05:02:53 +00:00
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, nodes, sorted) {
if (err) {
console.log('ERROR: ');
console.log(err);
return;
}
2010-11-21 05:08:08 +00:00
sorted.dirs.forEach(function (item, i, arr) {
2010-11-21 05:02:53 +00:00
if (item.name.match(/trash/i)) {
console.log('found a trash');
arr.splice(i,1);
}
});
console.log("PATH: " + path);
console.log("SORTED: ");
2010-11-21 05:07:21 +00:00
console.log(sorted);
2010-11-21 05:02:53 +00:00
});
Output
----
PATH: ./walk-test
SORTED:
{ errors: [],
files:
[ { dev: 234881026,
ino: 30682245,
mode: 33204,
nlink: 1,
uid: 504,
gid: 20,
rdev: 0,
size: 0,
blksize: 4096,
blocks: 0,
atime: Sun, 21 Nov 2010 04:48:23 GMT,
mtime: Sun, 21 Nov 2010 04:48:23 GMT,
ctime: Sun, 21 Nov 2010 04:48:23 GMT,
name: 'file-1' },
{ dev: 234881026,
ino: 30682246,
mode: 33204,
nlink: 1,
uid: 504,
gid: 20,
rdev: 0,
size: 0,
blksize: 4096,
blocks: 0,
atime: Sun, 21 Nov 2010 04:48:23 GMT,
mtime: Sun, 21 Nov 2010 04:48:23 GMT,
ctime: Sun, 21 Nov 2010 04:48:23 GMT,
name: 'file-2' } ],
dirs:
[ { dev: 234881026,
ino: 30682244,
mode: 16893,
nlink: 4,
uid: 504,
gid: 20,
rdev: 0,
size: 136,
blksize: 4096,
blocks: 0,
atime: Sun, 21 Nov 2010 04:49:40 GMT,
mtime: Sun, 21 Nov 2010 04:48:23 GMT,
ctime: Sun, 21 Nov 2010 04:48:23 GMT,
name: 'dir1' } ],
blocks: [],
chars: [],
links: [],
fifos: [],
sockets: [] }
PATH: walk-test/dir1
SORTED:
{ errors: [],
files:
[ { dev: 234881026,
ino: 30682247,
mode: 33204,
nlink: 1,
uid: 504,
gid: 20,
rdev: 0,
size: 0,
blksize: 4096,
blocks: 0,
atime: Sun, 21 Nov 2010 04:48:23 GMT,
mtime: Sun, 21 Nov 2010 04:48:23 GMT,
ctime: Sun, 21 Nov 2010 04:48:23 GMT,
name: 'file-1' },
{ dev: 234881026,
ino: 30682248,
mode: 33204,
nlink: 1,
uid: 504,
gid: 20,
rdev: 0,
size: 0,
blksize: 4096,
blocks: 0,
atime: Sun, 21 Nov 2010 04:48:23 GMT,
mtime: Sun, 21 Nov 2010 04:48:23 GMT,
ctime: Sun, 21 Nov 2010 04:48:23 GMT,
name: 'file-2' } ],
dirs: [],
blocks: [],
chars: [],
links: [],
fifos: [],
sockets: [] }