這個物件是在分析階段建立,用來代表在執行階段讀取或寫入的檔案或目錄。這不是開啟的檔案句柄,無法用於直接讀取或寫入檔案內容。而是在規則實作函式中,將其傳遞至動作建立函式,以便建構動作圖表。詳情請參閱「規則」頁面。
如果 File
是透過 map_each
函式傳遞至 Args
物件,系統會將其轉換為字串,並取得其 path
欄位的值。
成員
- basename
- dirname
- extension
- is_directory
- is_source
- is_symlink
- owner
- path
- root
- short_path
- tree_relative_path
basename
string File.basename這個檔案的基礎名稱。這是目錄內的檔案名稱。
目錄名稱
string File.dirname包含此檔案的目錄名稱。這個值取自 path,一律以執行目錄為基準。
擴充功能
string File.extension這個檔案的副檔名,緊接在最右邊的句號之後 (不包含)。如果檔案的底層名稱不含句點,則為空字串。
is_directory
bool File.is_directory如果是目錄,則傳回「是」。這會反映檔案的宣告類型 (即 ctx.actions.declare_directory),而非檔案系統中的類型,後者可能有所不同。
is_source
bool File.is_source如果這是來源檔案,也就是未產生的檔案,則傳回 true。
is_symlink
bool File.is_symlink如果是目錄,則傳回「是」。這會反映檔案的宣告類型 (即 ctx.actions.declare_symlink),而非檔案系統上的類型,後者可能不同。
擁有者
Label File.owner產生此檔案的目標標籤。可能會傳回
None
。
路徑
string File.path相對於工作區執行目錄的此檔案執行路徑。這個值由兩個部分組成,第一個部分稱為 root (亦請參閱 root 模組),第二個部分則是
short_path
。根目錄可能為空白,這通常是針對非產生的檔案。對於產生的檔案,它通常會包含設定檔專屬的路徑片段,用於編碼建構該檔案時使用的目標 CPU 架構等項目。如果檔案位於二進位檔的執行檔中,請使用 short_path
做為檔案對應的路徑。root
root File.root這個檔案所在的根目錄。
short_path
string File.short_path相對於根目錄的檔案路徑。這會排除上述的「根」,也就是路徑的設定專屬片段。如果檔案位於二進位檔的執行檔中,這也是對應檔案的路徑。
tree_relative_path
string File.tree_relative_path如果祖系的「is_directory」is_directory欄位為 true,則此檔案相對於祖系樹狀結構根目錄的路徑。
tree_relative_path
僅適用於動作指令中目錄的展開檔案,例如 Args.add_all()。如果是其他類型的檔案,則存取此欄位會發生錯誤。