파일

문제 신고 소스 보기 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

이 객체는 실행 단계에서 읽거나 쓸 파일 또는 디렉터리를 나타내기 위해 분석 단계에서 생성됩니다. 열린 파일 핸들이 아니므로 파일 콘텐츠를 직접 읽거나 쓰는 데 사용할 수 없습니다. 대신 작업 생성 함수에 전달하여 규칙 구현 함수에서 작업 그래프를 구성하는 데 사용합니다. 자세한 내용은 규칙 페이지를 참고하세요.

Filemap_each 함수를 사용하지 않고 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 아키텍처 등을 인코딩하는 구성별 경로 프래그먼트가 포함됩니다. 파일이 바이너리의 runfiles에 있는 경우 파일이 매핑되는 경로에 short_path를 사용합니다.

루트

root File.root

이 파일이 있는 루트입니다.

short_path

string File.short_path

이 파일의 루트를 기준으로 한 경로입니다. 여기에는 앞서 언급한 루트(경로의 구성별 프래그먼트)는 포함되지 않습니다. 이는 바이너리의 runfiles에 있는 경우 파일이 매핑되는 경로이기도 합니다.

tree_relative_path

string File.tree_relative_path

조상의 is_directory 필드가 true인 경우 조상 트리의 루트를 기준으로 이 파일의 경로입니다. tree_relative_path는 작업 명령어(예: Args.add_all())의 디렉터리 확장 파일에만 사용할 수 있습니다. 다른 유형의 파일의 경우 이 필드에 액세스하면 오류가 발생합니다.