此对象在分析阶段创建,用于表示将在执行阶段读取或写入的文件或目录。它不是打开的文件句柄,无法用于直接读取或写入文件内容。而是通过将其传递给用于创建操作的函数,在规则实现函数中使用它来构建操作图。如需了解详情,请参阅“规则”页面。
如果在不使用 map_each
函数的情况下将 File
传递给 Args
对象,系统会通过获取其 path
字段的值将其转换为字符串。
成员
- basename
- dirname
- extension
- is_directory
- is_source
- is_symlink
- owner
- path
- root
- short_path
- tree_relative_path
basename
string File.basename此文件的基础名称。这是目录中文件的名称。
dirname
string File.dirname包含此文件的目录的名称。它取自路径,始终相对于执行目录。
扩展程序
string File.extension此文件的文件扩展名,位于最右侧英文句号之后(不包括英文句号)。如果文件的文件名不包含英文句点,则为空字符串。
is_directory
bool File.is_directory如果是目录,则返回 true。这反映的是文件的声明类型(即 ctx.actions.declare_directory),而不是文件系统上的类型(可能有所不同)。
is_source
bool File.is_source如果这是源文件(即未生成),则返回 true。
is_symlink
bool File.is_symlink如果是目录,则返回 true。这反映的是文件的声明类型(即 ctx.actions.declare_symlink),而不是文件系统上的类型(可能有所不同)。
所有者
Label File.owner生成此文件的目标的标签。 可以返回
None
。
路径
string File.path相对于工作区的执行目录的此文件的执行路径。它由两个部分组成,第一个部分(可选)称为根(另请参阅根模块),第二部分是
short_path
。根目录可以是空的,对于非生成的文件,通常就是空的。对于生成的文件,它通常包含特定于配置的路径片段,用于编码构建该文件时所用的目标 CPU 架构等内容。如果文件位于二进制文件的 runfile 中,请使用 short_path
作为文件映射的路径。
root
root File.root此文件所在的根目录。
short_path
string File.short_path此文件相对于其根目录的路径。这不包括前面提到的根,即路径中的配置专用片段。如果文件位于二进制文件的 runfile 中,则也是映射到该路径下。
tree_relative_path
string File.tree_relative_path如果祖先的 is_directory 字段为 true,则此文件相对于祖先树的根目录的路径。
tree_relative_path
仅适用于操作命令(即 Args.add_all())中目录的展开文件。对于其他类型的文件,访问此字段会出错。