文件

报告问题 查看来源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

此对象是在分析阶段创建的,用于表示执行阶段将读取或写入的文件或目录。它不是打开的文件句柄,不能用于直接读取或写入文件内容。相反,您可以通过将其传递给创建操作的函数,在规则实现函数中使用它来构建操作图。如需了解详情,请参阅“规则”页面

File 在不使用 map_each 函数的情况下传递给 Args 对象时,系统会通过获取其 path 字段的值将其转换为字符串。

成员

basename

string File.basename

相应文件的基本名称。这是目录中文件的名称。

dirname

string File.dirname

包含相应文件的目录的名称。它取自 path,并且始终相对于执行目录。

扩展程序

string File.extension

相应文件的扩展名,位于最右侧句点之后(不包括该句点)。如果文件的基本名称不包含句点,则为空字符串。

is_directory

bool File.is_directory

如果这是目录,则返回 true。这反映了文件声明的类型(即 ctx.actions.declare_directory),而不是其在文件系统中的类型,后者可能有所不同。

is_source

bool File.is_source

如果这是源文件(即不是生成的),则返回 true。

bool File.is_symlink

如果此文件声明为符号链接,则返回 true。这反映了文件声明的类型(即 ctx.actions.declare_symlink),而不是其在文件系统中的类型,后者可能有所不同。

所有者

Label File.owner

生成此文件的目标标签。 可能会返回 None

路径

string File.path

此文件的执行路径(相对于工作区的执行目录)。它由两部分组成,第一部分是可选的,称为“根”(root)(另请参阅“根”模块),第二部分是 short_path根目录可能为空,对于非生成的文件,根目录通常为空。对于生成的文件,它通常包含一个特定于配置的路径片段,用于编码在构建相应文件时使用的目标 CPU 架构等信息。如果文件位于二进制文件的 runfiles 中,请使用 short_path 作为文件映射到的路径。

root

root File.root

相应文件所在的根目录。

short_path

string File.short_path

相应文件相对于其根目录的路径。这会排除上述,即路径中特定于配置的 fragment。如果文件位于二进制文件的 runfiles 中,则这也是映射文件的路径。

tree_relative_path

string File.tree_relative_path

相应文件相对于祖先树根目录的路径(如果祖先的 is_directory 字段为 true)。tree_relative_path 仅适用于操作命令中目录的展开文件,即 Args.add_all()。对于其他类型的文件,访问此字段会出错。