Count Files
Count files, directories, and bytes in a directory recursively.
Ignore files in the count.
Usage
In javascript, use it like so:var countFiles = require('count-files')
var stats = countFiles(dir, function (err, results) {
console.log('done counting')
console.log(results) // { files: 10, dirs: 2, bytes: 234 }
})
setInterval(function () {
console.log('current count', stats) // { files: 4, dirs: 1, bytes: 34 }
}, 500)
count-files
also has a very simple command line tool, use npm install -g count-files
to install.❯ count-files ./
Counting files and directories in...
/joe/node_modules/count-files
Results:
Files: 13
Dirs: 4
Size: 10 KB
API
var stats = countFiles(src, opts, cb) { }
src
can be a directory or a single file path. You can also pass a custom fs, e.g. hyperdrive and path with: {fs: customFs, name: dir}
(see tests for examples).Callback returns the completed
stats
: {files, dirs, bytes}
.Options include:
opts = {
ignore: function (file) {
return match(['**/*.js'], file) // return true to ignore file
}
dereference: false // dereference any symlinks
}
We find anymatch nice for ignoring files!
That's all folks!
Development
- Run tests!
npm test
- Run performance thingy!
npm run perf
- Yay!
Some basic performance testing in
tests/perf.js
and alternate implementations in lib/
. I think I chose the fastest but didn't test all situations!