Single file or folder
matlab.buildtool.io.File class represents a single file or folder. You
can use this class to specify file-based inputs and outputs of a task. For more information
about task inputs and outputs, see Improve Performance with Incremental Builds.
When you use a string to specify an argument or property that requires a file collection,
MATLAB® automatically converts the string to a
File object if the string
does not include any wildcards. For example,
plan("myTask").Inputs = ["myFile"
"myFolder"] results in a 1-by-2
Path — Path to file or folder
Path to the file or folder, specified as a string scalar or character vector, and returned as a string scalar. The specified file or folder is not required to exist on disk.
Create File Collections
Create file collections and return their paths.
Create the folder structure used in this example. See the code of the local function
createFile, which is used to create the files, at the end of this example.
mkdir source createFile(fullfile("source","file1.m")) createFile(fullfile("source","file2.m")) mkdir source private createFile(fullfile("source","private","file3.m")) createFile(fullfile("source","private","file4.m"))
Create a file collection from all the
.m files in the
source folder and any of its subfolders. In this example,
fc1 is a
matlab.buildtool.io.Glob object because it is defined by a pattern that includes the
fc1 = FileCollection.fromPaths("source/**/*.m")
fc1 = Glob with properties: Pattern: "source/**/*.m"
Return the paths of the file collection. When you call
paths on a
Glob object, the method returns the paths to the files and folders on disk that match the
ans = 4×1 string "source\file1.m" "source\file2.m" "source\private\file3.m" "source\private\file4.m"
Add a file to the
source folder, and return the paths of the file collection again. Even though
fc1 has not been modified, the file collection has an additional path because its pattern now matches the newly created file as well.
ans = 5×1 string "source\file1.m" "source\file2.m" "source\newFile.m" "source\private\file3.m" "source\private\file4.m"
Now, create file collections from the
.m files in the
source folder and any of its subfolders, as well as from another folder named
fromPaths static method returns
fc2 as a 1-by-2
FileCollection vector. The first element of the vector is a
Glob object. The second element is a
matlab.buildtool.io.File object because it represents a single folder.
fc2 = FileCollection.fromPaths(["source/**/*.m" "nonexistentFolder"])
fc2=1×2 object 1×2 heterogeneous FileCollection (Glob, File) array with no properties.
Return the paths of
fc2. In this example, even though
nonexistentFolder does not exist on disk, the
paths method returns the path to it. The method searches for files and folders on disk only for patterns that include the
** wildcard. If you call
paths on a
File object, the method returns the path to the specified file or folder even if it does not exist on disk.
ans = 6×1 string "source\file1.m" "source\file2.m" "source\newFile.m" "source\private\file3.m" "source\private\file4.m" "nonexistentFolder"
This code shows the local function used in this example.
function createFile(filename) fclose(fopen(filename,"w")); end
If you call the
pathsmethod on a
Fileobject, the method returns the path to the specified file or folder even if it does not exist on disk.
Introduced in R2023b