Skip to content
Get on GitHub Autodesk App Store - coming soon

File

37 nodes. Types ending in [] are lists. An input with a default is optional.

Nodes

CSV.AppendToFile

Appends rows to a CSV file (same quoting and date format as CSV.WriteToFile), writing the optional headers only when the file is new or empty. In a loop, wire the loop item (or something made from it) into the rows: a node with only fixed inputs belongs to no loop and runs once. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The CSV file to append to. A relative path starts in the graph's folder.
rows required any[] — List of rows (each row a list of cell values; a scalar becomes a one-cell row).
delimiter string "," Single-character cell delimiter: a comma, semicolon, bar, or "tab".
headers any[] null Optional header cells, written once when the file is new or empty.
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16; a mark is written only when the file is new.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: csv append add rows table report export tab tsv encoding

CSV.ReadFromFile

Reads a CSV file into a list of rows. Plain numbers become numbers; codes with leading zeros (007), whole numbers of more than 15 digits and the words NaN and Infinity stay text, and Advanced > numbers = text keeps every cell as text. Delimiter: comma, semicolon, bar or tab. The encoding is detected (a file that is not valid UTF-8 is read as Windows-1252). For a table with column names use Table.FromCsvFile. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Path to the CSV file. A relative path starts in the graph's folder.
delimiter string "," Single-character cell delimiter: a comma, semicolon, bar, or "tab".
numbers string "auto" auto (default) turns plain numbers into numbers; text keeps every cell as text.
encoding string "auto" auto (default), UTF-8, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
data any[] List of rows; each row is a list of numbers/strings.

Tags: csv table spreadsheet import tab tsv delimiter encoding leading zeros

CSV.WriteToFile

Writes a list of rows to a CSV file, replacing what was there, and creates missing folders. Cells with the delimiter, quotes or line breaks are quoted; dates are written as 2026-10-04 14:30:00 (the same in every country); empty cells stay empty. Delimiter: comma, semicolon, bar or tab. Advanced > encoding: "UTF-8 with BOM" makes Excel show accents and symbols correctly. For a table use Table.ToCsvFile; to add rows to a file use CSV.AppendToFile. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Destination file path. A relative path starts in the graph's folder.
data required any[] — List of rows (each row a list of cell values).
delimiter string "," Single-character cell delimiter: a comma, semicolon, bar, or "tab".
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: csv table spreadsheet export tab tsv delimiter encoding bom

Directory.Copy

Copies a folder with all its files and sub-folders to another place (creates the destination; files already there are kept, and a file with the same name is only replaced when overwrite is true - checked before anything is copied). The destination cannot be inside the source. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
source required string — The folder to copy. A relative path starts in the graph's folder.
destination required string — The folder to copy it to (created when needed; its content is kept and merged with the copy).
overwrite boolean false True to replace files that already exist in the destination; false (default) to fail, before anything is copied, if any would be replaced.

Outputs

Output Type What it gives
path string The destination folder, for sequencing further file nodes.

Tags: copy folder directory backup stage deliverable duplicate robocopy xcopy

Directory.Create

Creates a folder including any missing parent folders (does nothing when it already exists). A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The folder to create. A relative path starts in the graph's folder.

Outputs

Output Type What it gives
path string The folder path, for sequencing further file nodes.

Tags: mkdir make folder new directory

Directory.Delete

Deletes a folder (an empty one, or with its whole content when recursive is true); returns false when it did not exist. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The folder to delete. A relative path starts in the graph's folder.
recursive boolean false True to delete the folder together with everything inside it.

Outputs

Output Type What it gives
deleted boolean True when a folder was deleted; false when there was no such folder.

Tags: remove rmdir erase clean folder directory

Directory.Exists

Tests whether a folder exists at the given path; a file, a missing folder and a blank path all give false. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The folder path to test. A relative path starts in the graph's folder.

Outputs

Output Type What it gives
exists boolean True when a folder exists at the path (false for files, missing paths and a blank path).

Tags: folder check found present directory

Directory.Find

Finds files or folders under a folder by wildcard (several allowed, separated by ";"), in every sub-folder unless recursive is off. kind chooses files or folders. The paths come sorted by name, ignoring case and with numbers in order (c2 before c10); Advanced sorts by date or size instead and can keep only the first few - the newest file is sortBy modified + descending + limit 1. A pattern must match the whole name, so "*.ifc" never also finds .ifcxml. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The folder to search. A relative path starts in the graph's folder.
pattern string "*" Wildcard filter on the file or folder name ("*" and "?"); several patterns can be separated by ";" (e.g. "*.nwd;*.nwf").
kind string "files" files (default) or folders.
recursive boolean true True (default) to search sub-folders too.
sortBy string "name" name (full path, alphabetical, case ignored, numbers in order), modified, created or size (files only).
descending boolean false True to reverse the order (newest / largest first).
limit integer 0 Keep only the first N results after sorting; 0 keeps all.

Outputs

Output Type What it gives
paths string[] The full paths in the requested order.

Tags: search find newest latest recursive list wildcard files folders subfolders directory tree browse batch get files get directories

Directory.Move

Moves or renames a folder with everything in it. When the destination already exists it is an error unless overwrite is true, which moves the content into it and replaces files with the same name. Moving to another drive copies first and removes the original afterwards. The destination cannot be inside the source. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
source required string — The folder to move. A relative path starts in the graph's folder.
destination required string — The new place of the folder (its parent is created when needed).
overwrite boolean false True to move the content into a destination that already exists (files with the same name are replaced); false (default) to fail instead.

Outputs

Output Type What it gives
path string The destination folder, for sequencing further file nodes.

Tags: move rename folder directory relocate archive stage

Excel.ReadFromFile

Reads an .xlsx worksheet into rows + headers + the sheet names (dates arrive as Excel serial numbers, convert them with DateTime.FromExcelSerial; .xls is not supported). Text cells such as 007 stay text. Every row is padded with empty cells to the widest row, and empty rows at the end of the sheet - the ones that only carry formatting - are dropped (Advanced > trimEmptyRows; blank rows in the middle are kept so row numbers stay true). For a table use Table.FromExcelFile. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Path to the .xlsx file. A relative path starts in the graph's folder.
sheet string "" Worksheet name; empty selects the first sheet.
hasHeaders boolean true True when the first row is a header row (it is split off into "headers").
trimEmptyRows boolean true True (default) to drop the empty rows at the end of the sheet (rows that only carry formatting).

Outputs

Output Type
rows any
headers string[]
sheetNames string[]

Returns: Dictionary with "rows", "headers" and "sheetNames".

Tags: xlsx excel spreadsheet workbook table import sheet dates

Excel.WriteToFile

Writes rows (+ optional headers) to an .xlsx worksheet. Dates become real date cells (shown as dates in Excel), a list in a cell is written as text like [1, 2], and NaN or Infinity as text. Advanced > append adds the sheet to an existing workbook and replaces a sheet of the same name; the workbook is rebuilt from its cell values, so formulas, formatting, charts and pictures of a workbook made in Excel are not kept (a warning says so). The file is built beside the target and then put in place, so a failure never leaves a broken workbook. For a table use Table.ToExcelFile. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Destination .xlsx path (missing directories are created). A relative path starts in the graph's folder.
rows required any[] — List of rows; each row a list of cell values (scalar rows become single-cell rows).
headers any[] null Optional header row written before the data rows.
sheet string "Sheet1" Worksheet name (Excel rules: 1-31 chars, no : \ / ? * [ ]).
append boolean false True to add the sheet to an existing workbook instead of replacing the file.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: xlsx excel spreadsheet workbook export save sheet dates

File.Copy

Copies a file to a new path (creates the destination folder; refuses to replace an existing file unless overwrite is true). A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
source required string — The file to copy. A relative path starts in the graph's folder.
destination required string — The full destination file path (not just a folder).
overwrite boolean false True to replace an existing destination file; false (default) to fail instead.

Outputs

Output Type What it gives
path string The destination path, for sequencing further file nodes.

Tags: duplicate backup clone file copy

File.Delete

Deletes a file; returns true when it was deleted and false when it did not exist. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The file to delete. A relative path starts in the graph's folder.

Outputs

Output Type What it gives
deleted boolean True when a file was deleted; false when there was no such file.

Tags: remove erase clean file delete

File.Exists

Tests whether a file exists at the given path; a folder, a missing file and a blank path all give false. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The file path to test. A relative path starts in the graph's folder.

Outputs

Output Type What it gives
exists boolean True when a file exists at the path.

Tags: file check found present

File.Hash

Computes a checksum of a file's content (SHA256, SHA1 or MD5) as lower-case hex text - handy for change detection. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The file to hash. A relative path starts in the graph's folder.
algorithm string "SHA256" SHA256 (default), SHA1 or MD5, in any case.

Outputs

Output Type What it gives
hash string The hash as lower-case hexadecimal text.

Tags: checksum sha md5 digest change compare fingerprint

File.Info

Reads a file's name, extension, folder, size in bytes and modified / created dates; a missing file gives exists = false and empty values instead of an error. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The file to inspect. A relative path starts in the graph's folder.

Outputs

Output Type
exists boolean
name string
extension string
directory file
sizeBytes number
modified datetime
created datetime

Returns: Dictionary with "exists", "name", "extension", "directory", "sizeBytes", "modified" and "created".

Tags: size date modified created properties stat exists attributes

File.Move

Moves or renames a file (creates the destination folder; refuses to replace an existing file unless overwrite is true). With overwrite, the old destination file is replaced only once the move can succeed: if the source is locked by another program, the destination stays as it was. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
source required string — The file to move. A relative path starts in the graph's folder.
destination required string — The full destination file path (not just a folder).
overwrite boolean false True to replace an existing destination file; false (default) to fail instead.

Outputs

Output Type What it gives
path string The destination path, for sequencing further file nodes.

Tags: rename relocate archive file move

JSON.ReadFromFile

Reads a JSON file into dictionaries, lists and values (every number becomes a double). The encoding is detected. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Path to the JSON file. A relative path starts in the graph's folder.
encoding string "auto" auto (default), UTF-8, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
data any The parsed value (dictionary, list, number, string, boolean or null).

Tags: json parse import encoding

JSON.WriteToFile

Writes any value to a JSON file, replacing what was there, and creates missing folders. Nothing wired (null) is an error that leaves the file alone. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — Destination file path. A relative path starts in the graph's folder.
data required any — The value to serialize; null is an error.
indented boolean true True for pretty-printed output.
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: json serialize export encoding

Log.Write

Appends one line "yyyy-MM-dd HH:mm:ss LEVEL message" (local time) to a log file and returns that line. In a loop, wire the loop item (or something made from it) into the message to get one line per pass: a Log.Write with only fixed inputs belongs to no loop and writes once. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The log file. A relative path starts in the graph's folder.
message required string — The text to log; line breaks are replaced by " | " so an entry stays on one line.
level string "INFO" INFO (default), WARN, ERROR or DEBUG, in any case.
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16; a mark is written only when the file is new.

Outputs

Output Type What it gives
line string The line that was written, e.g. "2026-10-01 10:20:35 INFO message".

Tags: log logging audit trail timestamp journal append report

Path.ChangeExtension

Replaces the extension of a path ("a.nwd" + "nwf" gives "a.nwf"); empty text removes the extension.

Inputs

Input Type Default What it does
path required string — The path to change.
extension required string — The new extension, with or without the leading dot; empty text removes the extension.

Outputs

Output Type What it gives
path string The path with the new extension.

Tags: extension rename replace suffix convert path

Path.Combine

Joins a folder path and a file name with the correct separator. Trap: if the file name is itself a full path (it starts with a drive such as C:\ or with a backslash), the result is that part alone and the folder is dropped; Path.Join does not do that and takes any number of parts.

Inputs

Input Type Default What it does
directory required string — The folder part.
fileName required string — The file (or subpath) part.

Outputs

Output Type What it gives
path string The combined path.

Tags: join folder filename concat

Path.GetDirectory

Returns the folder part of a path ("C:\Models\site.nwd" gives "C:\Models"); empty text for a root or a bare file name.

Inputs

Input Type Default What it does
path required string — The path to split.

Outputs

Output Type What it gives
directory string The path without its last part; empty for a drive/root or a bare file name.

Tags: folder parent dirname directory path

Path.GetExtension

Returns the extension of a path with its leading dot (".nwd"), or empty text when there is none.

Inputs

Input Type Default What it does
path required string — The path to inspect.

Outputs

Output Type What it gives
extension string The extension with its dot (".nwd"); empty when the file name has none.

Tags: extension suffix type ext path

Path.GetFileName

Returns the file name of a path including its extension ("C:\Models\site.nwd" gives "site.nwd").

Inputs

Input Type Default What it does
path required string — The path to split, e.g. "C:\Models\site.nwd".

Outputs

Output Type What it gives
fileName string The last part of the path ("site.nwd"); empty when the path ends with a separator.

Tags: filename basename name split path

Path.GetFileNameWithoutExtension

Returns the file name of a path without its extension ("C:\Models\site.nwd" gives "site").

Inputs

Input Type Default What it does
path required string — The path to split, e.g. "C:\Models\site.nwd".

Outputs

Output Type What it gives
name string The file name without the last extension ("site").

Tags: filename basename stem name split path

Path.GetFullPath

Resolves a path to an absolute path the way the file nodes do: a relative path starts in the graph's folder (the folder of the saved graph file; Documents\CamelGraph for a graph that was never saved), and the quotes of a path pasted from Explorer are removed. The file does not have to exist.

Inputs

Input Type Default What it does
path required string — The (possibly relative) path.

Outputs

Output Type What it gives
path string The absolute path with "." and ".." resolved.

Tags: absolute resolve full expand path

Path.GetRelativePath

Expresses a path relative to a base folder; returns the full path when they are on different drives. Relative inputs start in the graph's folder.

Inputs

Input Type Default What it does
path required string — The path to express (absolute, or relative to the graph's folder).
baseDirectory required string — The folder the result is relative to.

Outputs

Output Type What it gives
path string The relative path ("..\other\a.nwd"), "." when both are the same folder, or the full path when they have different roots (e.g. different drives).

Tags: relative base make relative path

Path.IsAbsolute

Tests whether a path is absolute (starts at a drive, network share or root) rather than relative.

Inputs

Input Type Default What it does
path required string — The path to test.

Outputs

Output Type What it gives
isAbsolute boolean True for "C:\a", "\\server\share" and "/home/a"; false for "a\b", "..\a" and drive-relative "C:a".

Tags: absolute relative rooted check path

Path.Join

Joins any number of folder and file name parts into one path with the correct separator, for example C:\Projects + North + HVAC + model.nwd. Blank parts are skipped, and several wires, lists and lists of lists are joined in order. Unlike Path.Combine, a part that starts with a backslash or slash does not throw away what came before it, and a part with its own drive (D:\x) is an error instead of silently replacing the folder.

Inputs

Input Type Default What it does
parts any number of wires required any[] — The parts, in order: folders and a last file name. Several wires, lists and lists of lists are joined in order; blank parts are skipped.

Outputs

Output Type What it gives
path string The joined path, with the separator of this operating system.

Tags: join combine concat folder filename append segments path

Path.Normalize

Cleans a path as text: one separator style, no trailing separator, "." and ".." resolved (the disk is never read).

Inputs

Input Type Default What it does
path required string — The path to clean.

Outputs

Output Type What it gives
path string The normalized path; "." when a relative path cancels out completely.

Tags: clean tidy canonical separator slash simplify path

Text.AppendToFile

Appends text (plus a line break by default) to the end of a text file, creating the file and folder if needed. A list of texts appends every item as its own line. Nothing wired is an error; empty text with the line break on adds a blank line. In a loop, wire the loop item (or something made from it) into the text: a node with only fixed inputs belongs to no loop and runs once. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
path required string — The file to append to. A relative path starts in the graph's folder.
text required string — The text to append; null is an error.
newLine boolean true True (default) to end the appended text with a line break.
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16; a mark is written only when the file is new.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: append add log write txt export encoding

Text.ReadFromFile

Reads the entire content of a text file as one text. The encoding is detected: UTF-8 or UTF-16 as the file marks it, and a file that is not valid UTF-8 is read as Windows-1252 (what a European Excel "CSV (Comma delimited)" export uses); Advanced > encoding forces one. A relative path starts in the graph's folder. To split the text into lines use String.Split.

Inputs

Input Type Default What it does
path required string — Path to the file, e.g. from a File Path node. A relative path starts in the graph's folder.
encoding string "auto" auto (default), UTF-8, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
text string The file content as one string.

Tags: read load txt import encoding utf-8 ansi lines

Text.WriteToFile

Writes text to a file, replacing what was there, and creates missing folders; returns the path. A list of texts is written one item per line (joined with line breaks, no final line break). Nothing wired is an error that leaves the file alone; empty text "" empties it. A list of paths writes every file with the same text - set the text input to @L1 to write one text per path. Advanced > encoding: "UTF-8 with BOM" makes Excel show accents and symbols correctly. A relative path starts in the graph's folder. To add to a file use Text.AppendToFile.

Inputs

Input Type Default What it does
path required string — Destination file path. A relative path starts in the graph's folder.
text required any — The text to write. A list is written one item per line (joined with line breaks, no final line break); null is an error.
encoding string "UTF-8" UTF-8 (default, no byte-order mark), UTF-8 with BOM, Windows-1252 or UTF-16.

Outputs

Output Type What it gives
path string The path that was written, for sequencing further file nodes.

Tags: write save txt export encoding utf-8 bom lines

Zip.Create

Packs files and folders into a zip archive (a folder is stored with its structure under its own name); a missing source is an error. Several wires, lists and lists of lists of paths can go into sources (for example a list of files plus one extra folder); they are packed in order. The zip is built beside the target and then put in place, so a failure never leaves a half-written file. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
sources any number of wires required any[] — The files and/or folders to pack (a list of paths; several wires and lists of lists are joined).
zipPath required string — The zip file to create (its folder is created when needed). A relative path starts in the graph's folder.
overwrite boolean false True to replace an existing zip file; false (default) to fail instead.

Outputs

Output Type What it gives
path string The zip path, for sequencing further file nodes.

Tags: zip compress archive package deliverable pack bundle

Zip.Extract

Unpacks a zip archive into a folder; refuses entries that would escape the folder and files that already exist unless overwrite is true. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
zipPath required string — The zip file to unpack. A relative path starts in the graph's folder.
directory required string — The destination folder (created when needed).
overwrite boolean false True to replace files that already exist; false (default) to fail instead.

Outputs

Output Type What it gives
directory string The destination folder, for sequencing further file nodes.

Tags: unzip extract decompress unpack archive zip

Zip.List

Lists the entry names inside a zip archive without extracting it. A relative path starts in the graph's folder.

Inputs

Input Type Default What it does
zipPath required string — The zip file to read. A relative path starts in the graph's folder.

Outputs

Output Type What it gives
entries string[] The entry names as stored (folders end with "/").

Tags: zip contents list inspect archive entries