文件

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

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

成员

basename

string File.basename

此文件的基础名称。这是目录中文件的名称。

dirname

string File.dirname

包含此文件的目录的名称。它取自路径,始终相对于执行目录。

扩展程序

string File.extension

此文件的文件扩展名,跟在(不包括)最右边的句点后面。如果文件的文件名不包含英文句点,则为空字符串。

is_directory

bool File.is_directory

如果是目录,则返回 true。

is_source

bool File.is_source

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

所有者

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())中目录的展开文件。对于其他类型的文件,访问此字段会出错。