Read Directory Node

Overview
The Read Directory Node reads the contents of a specified directory and outputs an array of filenames. The node can also be configured to read directories recursively, include directories in the output, filter the filenames, return relative paths, and ignore certain files or directories.
If you are using the Rivet SDK, this node requires a native API to be available in the context when the graph is being run. The native API is responsible for providing the functionality to read the contents of a directory.
- Inputs
- Outputs
- Editor Settings
Inputs
The only inputs for the Read Directory node are toggleable Editor Settings. See that section for possible inputs.
Outputs
| Title | Data Type | Description | Notes |
|---|---|---|---|
| Paths | string[] | An array of filenames in the specified directory. | If the directory does not exist or is not accessible, the output will be an array with one element containing the string (no such path). |
| Root Path | string | The path of the directory that was read. | The output will be the same as the Path input or the Path specified in the settings. |
Editor Settings
| Setting | Description | Default Value | Use Input Toggle | Input Data Type |
|---|---|---|---|---|
| Path | The path of the directory to read. | (required) | Yes | string |
| Recursive | If enabled, the node will read directories recursively. | false | Yes | boolean |
| Include Directories | If enabled, the node will include directories in the output. | false | Yes | boolean |
| Filter Globs | An array of glob patterns to filter the filenames, comma-separated. | [] | Yes | string[] |
| Relative | If enabled, the node will return relative paths. | false | Yes | boolean |
| Ignores | An array of glob patterns to ignore certain files or directories, comma-separated. For example, to filter out node_modules, you can do **/node_modules/**/*. | [] | Yes | string[] |
Example 1: Read the contents of a directory
- Create a Read Directory Node and set the
Pathto the directory you want to read. - Run the graph. The
Pathsoutput of the Read Directory Node should contain an array of filenames in the specified directory.

Error Handling
The Read Directory Node will error if the native API is not available in the context when the graph is being run. It will also error if the Path input is not provided.
If the directory does not exist or is not accessible, the Paths output will be an array with one element containing the string (no such path).
FAQ
Q: What is a native API?
A: A native API is an object that is responsible for providing native functionality to nodes. It is passed to the context when the graph is being run. The native API must implement the NativeApi interface, which includes methods for reading directories, reading and writing files, and other native operations. See the API Reference for more information.
Q: Can I read directories recursively?
A: Yes, you can set the Recursive input or setting to true to read directories recursively.
Q: What does it mean to include directories in the output?
A: If the Include Directories input or setting is set to true, the Paths output will contain directory names in addition to filenames. For example, if the Path input is set to /Users/username/Documents, the Paths output will contain filenames like file.txt and directory names like subdirectory and subdirectory2.
Q: How to I filter or ignore using globs?
A: Glob patterns are a way to filter filenames using wildcards. For example, to filter out all .txt files, you can do **/*.txt. To filter out all files in a node_modules directory, you can do **/node_modules/**/*.
Q: What does it mean to return relative paths?
A: If the Relative input or setting is set to true, the Paths output will contain relative paths instead of absolute paths. For example, if the Path input is set to /Users/username/Documents, the Paths output will contain filenames like file.txt instead of /Users/username/Documents/file.txt.