walk-file-tree recursively fetches paths to files and directories.
Category | Status |
---|---|
Version | |
Dependencies | |
Dev dependencies | |
Build | |
License |
$ npm install walk-file-tree
First you need to add a reference to walk-file-tree to your application:
const { walk } = require('walk-file-tree');
If you use TypeScript, use the following code instead:
import { walk } from 'walk-file-tree';
Then you can call the walk
function to recursively fetch paths to all the entries within a given directory. Provide the absolute path to that directory using the directory
option:
for await (const entry of walk({ directory: '/some/directory' })) {
// ...
}
From time to time you might only be interested in files or directories. In these cases, you can additionally provide a list of entry types you are interested in. For that, use the yields
option. E.g., to fetch only directories, use the following code:
for await (const entry of walk({
directory: '/some/directory',
yields: [ 'directories' ]
})) {
// ...
}
Please note that if you are using TypeScript, you can specify values of the EntryType enumeration (this needs to be imported separately).
If you are not interested in all entries, but e.g. only want to fetch .png
files, provide the matches
option. Alternatively (or additionally) there is the ignores
option which is the opposite. In both cases, you have to provide a callback function that returns whether the appropriate entry should be included or excluded:
for await (const entry of walk({
directory: '/some/directory',
matches (entry) {
return entry.endsWith('.png');
},
ignores (entry) {
return entry.startsWith('/tmp/');
}
})) {
// ...
}
Please note that it's valid to provide both options, or just a single one.
If you want to follow symbolic links, provide the followsSymlinks
option and set it to true
. The entries being returned are the resolved on-disk names, not the names of the symbolic links themselves:
for await (const entry of walk({
directory: '/some/directory',
followsSymlinks: true
})) {
// ...
}
Please note that by default, symbolic links will not be followed.
To limit the maximum recursion depth, set the maximumDepth
option to the desired value. The minimum level is 1
, which only fetches the files and directory names within the given directory. In other words, setting maximumDepth
to 1
disables any recursion:
for await (const entry of walk({
directory: '/some/directory',
maximumDepth: 1
})) {
// ...
}
To run quality assurance for this module use roboter:
$ npx roboter