1.2.0 • Published 10 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