Skip to content

panta82/readdir-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

readdir-plus

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

Basic usage

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.

Load file content

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.

Just the file list

readdir("/path/to/directory", {return: "names", recursive: false}, callback);

Returns

[
	"file1.txt",
	"file2.txt",
	//...
]

This now works the same as native readdir function.

For more examples, see unit tests

Options

All options with defaults and helpful comments can be seen here.


Licence

Apache v2. Read it here.

About

fs.readdir with additional options: recursive, details, get stat, load content...

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published