Namespaces
Variants

std::filesystem::path:: extension

From cppreference.net
path extension ( ) const ;
(C++17부터)

일반 형식 뷰의 파일명 컴포넌트 확장자를 반환합니다 * this .

만약 filename() 컴포넌트의 일반 형식 경로가 마침표( . )를 포함하고, 특별한 파일시스템 요소인 dot 또는 dot-dot 이 아닌 경우, extension 은 가장 오른쪽 마침표(마침표 포함)부터 경로명의 끝까지의 부분 문자열입니다.

파일명의 첫 번째 문자가 마침표인 경우, 해당 마침표는 무시됩니다(예: ".profile"은 확장자로 처리되지 않습니다).

경로명이 . 또는 .. 이거나, filename() '.' 문자가 포함되지 않은 경우, 빈 경로가 반환됩니다.

구현 시 파일 시스템에 확장자에 추가 요소(예: 대체 데이터 스트림 또는 분할 데이터셋 이름)를 첨부하는 경우 추가 동작이 정의될 수 있습니다.

목차

매개변수

(없음)

반환값

현재 경로명의 확장자 또는 확장자가 없는 경우 빈 경로입니다.

예외

구현 정의 예외를 던질 수 있습니다.

참고 사항

이 함수가 반환하는 확장자는 마침표를 포함하므로, 마침표로 끝나는 파일(함수가 "." 를 반환)과 확장자가 없는 파일(함수가 "" 를 반환)을 구분할 수 있습니다.

비-POSIX 시스템에서는, p. stem ( ) + p. extension ( ) ! = p. filename ( ) 인 경우가 있을 수 있습니다. 비록 일반 형식 버전들은 동일하더라도.

예제

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    std::cout << fs::path("/foo/bar.txt").extension() << '\n'
              << fs::path("/foo/bar.").extension() << '\n'
              << fs::path("/foo/bar").extension() << '\n'
              << fs::path("/foo/bar.txt/bar.cc").extension() << '\n'
              << fs::path("/foo/bar.txt/bar.").extension() << '\n'
              << fs::path("/foo/bar.txt/bar").extension() << '\n'
              << fs::path("/foo/.").extension() << '\n'
              << fs::path("/foo/..").extension() << '\n'
              << fs::path("/foo/.hidden").extension() << '\n'
              << fs::path("/foo/..bar").extension() << '\n';
}

출력:

".txt"
"."
""
".cc"
"."
""
""
""
""
".bar"

참고 항목

파일 이름 경로 구성 요소를 반환합니다
(public member function)
스템 경로 구성 요소를 반환합니다 (최종 확장자를 제외한 파일 이름)
(public member function)
확장자를 교체합니다
(public member function)
해당 경로 요소가 비어 있지 않은지 확인합니다
(public member function)