filesfinder

1.2.0 • Public • Published

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

Package Sidebar

Install

npm i filesfinder

Weekly Downloads

0

Version

1.2.0

License

ISC

Last publish

Collaborators

  • wubzz