Report an issueopen_in_new
View sourceopen_in_new
Nightly
·
7.3
·
7.2
·
7.1
·
7.0
·
6.5
This object is created during the analysis phase to represent a file or directory that will be read or written during the execution phase. It is not an open file handle, and cannot be used to directly read or write file contents. Rather, you use it to construct the action graph in a rule implementation function by passing it to action-creating functions. See the
Rules page for more information.
When a File
is passed to an Args
object without using a map_each
function, it is converted to a string by taking the value of its path
field.
Members
basename
string File.basename
The base name of this file. This is the name of the file inside the directory.
dirname
string File.dirname
The name of the directory containing this file. It's taken from
path and is always relative to the execution directory.
extension
string File.extension
The file extension of this file, following (not including) the rightmost period. Empty string if the file's basename includes no periods.
is_directory
bool File.is_directory
Returns true if this is a directory.
is_source
bool File.is_source
Returns true if this is a source file, i.e. it is not generated.
owner
Label File.owner
A label of a target that produces this File.
May return
None
.
path
string File.path
The execution path of this file, relative to the workspace's execution directory. It consists of two parts, an optional first part called the
root (see also the
root module), and the second part which is the
short_path
. The root may be empty, which it usually is for non-generated files. For generated files it usually contains a configuration-specific path fragment that encodes things like the target CPU architecture that was used while building said file. Use the
short_path
for the path under which the file is mapped if it's in the runfiles of a binary.
root
root File.root
The root beneath which this file resides.
short_path
string File.short_path
The path of this file relative to its root. This excludes the aforementioned
root, i.e. configuration-specific fragments of the path. This is also the path under which the file is mapped if it's in the runfiles of a binary.
tree_relative_path
string File.tree_relative_path
The path of this file relative to the root of the ancestor's tree, if the ancestor's
is_directory field is true.
tree_relative_path
is only available for expanded files of a directory in an action command, i.e.
Args.add_all(). For other types of files, it is an error to access this field.