A function to find files on the file system. The function
starts from the directory specified in the
and searches outward in a radiating pattern
for the file name in the
Results are returned as a vector of full paths in the order encountered.
down parameters define the scope of the search.
This function has an advantage over
list.files in that it can
search both up and down the file system, and limit the scope of the search.
file.find(path = ".", pattern = NULL, up = 3, down = 1)
The directory to start searching from. Default is the current working directory.
A full or partial name of the file to find. If partial, use the question mark (?) or asterisk (*) characters to indicate the missing piece. Default is NULL, which will return all files.
The number of levels above the base path to search. A value of zero (0) means that you do not want to search up. A value of -1 means you do not want to include the base directory in the search results. Default is 3 levels up.
The number of levels below the base path to search. A value of zero (0) means that you do not want to search down. A value of -1 means you do not want to include the base directory in the search results. Default is 1 level down.
A vector of one or more full file paths that met the search criteria. The paths in the vector are returned in the order of matches, according to the search algorithm. That means the first file found will be in position one, and the last file found will be at the end of the vector. A NULL is returned if no files met the search criteria.
file.find function attempts to find a file based on
a full or partial file name. The file name is passed
pattern accepts both the single character question mark
wild card (?), and the asterisk multi-character wild card (*).
Searches are case-insensitive.
Starting from the base path specified in the
the function searches
both above and below the base path in an alternating
pattern. The function will first search the base path, then up one level,
then down one level, and so on. The boundaries of
the search can be controlled by the
You can control whether or not you want files from the base directory
included in the results. To include these files, ensure both
down parameters are zero or greater. If either of these
parameters is set to -1, the base path will be excluded. For example,
up = 3, down = 1 will search up three levels, and down one level.
up = 3, down = 0 will search up three levels and not search down,
but will include the base directory.
up = 3, down = -1 will search
up three levels, not search down, and not include the base directory in
# Search for a file named "globals.R" file.find(getwd(), "globals.R") # Search for Rdata files file.find(getwd(), "*.Rdata") # Search for Rdata files up only file.find(getwd(), "*.Rdata", up = 3, down = 0) # Search for Rdata files up only, skipping the current working directory file.find(getwd(), "*.Rdata", up = 3, down = -1)