fs.readdir with additional options. Features:
- Multiple return types: names, paths, relative paths, details (with parts parsed + file type)
- Optional recursive search
- Loads stat for each found file / directory. Optionally disable for better performance.
- Detailed filtering by file type, regex and/or callback
- Produce tree structure or flat list
- Synchronous option
- Load content of found files (binary or text determined by extension) (TODO)
- Zero dependencies
- Tests
var readdir = require("readdir-plus");
readdir("/path/to/directory", function (err, files) {
//... do something with files
});
By default, readdir will recurse all subdirectories and present each found file as a hash with the following properties:
{
name: "file.txt",
path: "/home/myname/path/to/directory/subdir/file.txt",
relativePath: "subdir/file.txt",
extension: ".txt",
type: "file", // see vars.FILE_TYPES for what else can be here
stat: { /* instance of node's fs.Stats class for this file */ }
}
See here for details on node's fs.Stats
class.
readdir("/path/to/directory", {content: "true"}, function (err, results) {
console.log(results[0].content);
});
This prints out the contents of the first found file. Contents are loaded as strings or Buffers, based on extension sniffing.
readdir("/path/to/directory", {return: "names", recursive: false}, callback);
Returns
[
"file1.txt",
"file2.txt",
//...
]
This now works the same as native readdir function.
All options with defaults and helpful comments can be seen here.
Apache v2. Read it here.