1.2.0 • Published 8 years ago
filesfinder v1.2.0
FilesFinder
Simple module to search for files under various conditions, supporting globs via the glob module. Supports filtering by file content, filesize, extensions and created/modified/accessed dates.
Usage
var FilesFinder = require('filesfinder');
FilesFinder(rootPath, options)
.then(function(files) {
})
.catch(function(error) {
});
Options
{
fileSize: {
min: '1kB', //Minimum fileSize
max: '20kB' //Maximum fileSize
},
extensions: ['js', 'txt', 'csv'], //Array of extensions to search for,
fileNameLike: '', //Wildcard filename search
fileContent: {
contains: 'Something', //File must contain this string (/Something/gi)
caseSensitive: false //True for making `contains` case sensitive
},
filesOnly: false, //True for ignoring directories
caseSensitive: false, //True for case sensitive fileName search
excludedPaths: ['node_modules'], //Array of excluded paths
timeout: false, //Timeout in ms before aborting the search
created: {
start: 'DateString', //Start date for file/dir creation date -- Date.parse
end: 'DateString' //End date for file/dir creation date -- Date.parse
},
modified: {
start: 'DateString', //Start date for file/dir modified date -- Date.parse
end: 'DateString' //End date for file/dir modified date -- Date.parse
},
accessed: {
start: 'DateString', //Start date for file/dir accessed date -- Date.parse
end: 'DateString' //End date for file/dir accessed date -- Date.parse
}
}
CLI
A very basic CLI is included when installed globally (npm install -g filesfinder
). It's based on commander
Option Comment Default
--root [path] Root path to base the search on. require('process').cwd()
--extensions [extensions] Space-separated list of extensions to search for. false
--filenamelike [filenamelike] Wildcard filname search false
--contains [wildcard] Content to search for in the files. false
--containscase [wildcard] Content to search for in the files. (Case sensitive) false
--filesonly Only files, no directories. false
--exclude [excludedpaths] Space-separated list of excluded paths false
--timeout [ms] Timeout in milliseconds before aborting. false
--casesensitive Case Sensitive search of filenames false
--fsmin [min] Minimum file size in bytes/string variant. false
--fsmax [max] Maximum file size in bytes/string variant. false
--cstart [datestring] Created on start date false
--cend [datestring] Created on end date false
--mstart [datestring] Modified on start date false
--mend [datestring] Modified on end date false
--astart [datestring] Accessed on start date false
--aend [datestring] Accessed on end date false
--output [format] Output format 'P'
Use any of the following to generate an output format:
F Full path of the file
P Path of the file relative to the root path
N File name
S File Size prettified
s File Size
E Extension
A Accessed Timestamp
M Modified Timestamp
C Created Timestamp
Example: --output "N.E S"
-> testfile.txt 43kB