Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
recursive-readdir
Advanced tools
The recursive-readdir npm package is used to recursively read directories and list all files within them. It can be particularly useful for tasks such as file system traversal, searching for specific file types, and performing operations on a large number of files within nested directories.
Basic Usage
This feature allows you to list all files in a directory and its subdirectories. The code sample demonstrates how to use the package to read all files in a specified directory.
const recursive = require('recursive-readdir');
recursive('path/to/directory', (err, files) => {
if (err) {
console.error(err);
} else {
console.log(files);
}
});
Filtering Files
This feature allows you to filter out certain files or directories. The code sample demonstrates how to ignore the 'node_modules' directory while listing all other files.
const recursive = require('recursive-readdir');
const ignoreFunc = (file, stats) => {
return stats.isDirectory() && file === 'node_modules';
};
recursive('path/to/directory', [ignoreFunc], (err, files) => {
if (err) {
console.error(err);
} else {
console.log(files);
}
});
Using Promises
This feature allows you to use promises instead of callbacks for better readability and error handling. The code sample demonstrates how to use promises to list all files in a specified directory.
const recursive = require('recursive-readdir');
recursive('path/to/directory')
.then(files => {
console.log(files);
})
.catch(err => {
console.error(err);
});
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.
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.
readdir("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.
FAQs
Get an array of all files in a directory and subdirectories.
The npm package recursive-readdir receives a total of 953,897 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
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.