JavaScript generator pattern for efficient directory listing.
Unlike other directory walkers, this coding pattern will NOT try to scan the entire tree. The directory listings are returned as a generator pattern and the subdirectories are only scanned when the calling method has consumed all the normal files in a directory.
The async nature of the function, it yield
s to the calling routine allowing it to process the file as needed.
$ npm install dir-walker-gen
const DirGen = require('dir-walker-gen');
const options = {
folders: ["D:\\Dropbox"]
}
for (let file of DirGen(options)) {
console.log(file);
}
const DirGen = require('dir-walker-gen');
const options = {
folders: ["D:\\Dropbox", "D:\\OneDrive"],
silent: true,
ignoreDotDir: true,
excludeFolders: ['Public'],
excludeExtensions: ['tmp', 'docx', 'xlsx'],
includeExtensions: ['jpeg', 'jpg', 'png', 'gif']
};
for (let file of DirGen(options)) {
console.log(file);
}
Option* | Comment | Default |
---|---|---|
folders |
(Required) List of starting folders | |
silent |
Does not show console warning when directories do not exist | false |
ignoreDotDir |
Ignores directories that start with a dot (e.g. .git, .vscode, etc) | false |
excludeFolders |
Exclude all folder that ends with any of the given strings | empty list (ignore nothing) |
excludeExtensions |
List of extensions to ignore | empty list (ignore nothing) |
includeExtensions |
List of extensions to scan (all other extensions are ignored) | empty list (ignore nothing) |
Notes:
excludeExtensions
is not really needed ifincludeExtensions
is supplied.- Include and Exclude strings are case sensitive