
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
recursive-readdir
Advanced tools
Recursively list all files in a directory and its subdirectories. It does not list the directories themselves.
Because it uses fs.readdir, which calls readdir under the hood on OS X and Linux, the order of files inside directories is not guaranteed.
npm install recursive-readdir
var recursive = require("recursive-readdir");
recursive("some/path", function (err, files) {
// `files` is an array of file paths
console.log(files);
});
It can also take a list of files to ignore.
var recursive = require("recursive-readdir");
// ignore files named "foo.cs" or files that end in ".html".
recursive("some/path", ["foo.cs", "*.html"], function (err, files) {
console.log(files);
});
You can also pass functions which are called to determine whether or not to ignore a file:
var recursive = require("recursive-readdir");
function ignoreFunc(file, stats) {
// `file` is the path to the file, and `stats` is an `fs.Stats`
// object returned from `fs.lstat()`.
return stats.isDirectory() && path.basename(file) == "test";
}
// Ignore files named "foo.cs" and descendants of directories named test
recursive("some/path", ["foo.cs", ignoreFunc], function (err, files) {
console.log(files);
});
You can omit the callback and return a promise instead.
var recursive = require("recursive-readdir");
recursive("some/path").then(
function(files) {
console.log("files are", files);
},
function(error) {
console.error("something exploded", error);
}
);
The ignore strings support Glob syntax via minimatch.
The readdirp package is another option for recursively reading directories. It offers a more flexible API with support for streams, promises, and callbacks. Compared to recursive-readdir, readdirp provides more advanced filtering options and better performance for large directories.
The klaw package is a file system walker that allows you to recursively read directories and perform actions on each file. It supports streams and provides a more modular approach compared to recursive-readdir. Klaw is particularly useful for applications that need to process files as they are read.
The fs-extra package extends the native Node.js fs module with additional methods, including recursive directory reading. While it is not as specialized as recursive-readdir, fs-extra offers a wide range of file system utilities, making it a versatile choice for various file operations.
FAQs
Get an array of all files in a directory and subdirectories.
The npm package recursive-readdir receives a total of 2,139,847 weekly downloads. As such, recursive-readdir popularity was classified as popular.
We found that recursive-readdir demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.