std::filesystem::path::extension
提供: cppreference.com
< cpp | filesystem | path
path extension() const; |
(C++17以上) | |
*this の汎用形式視点のファイル名部分の拡張子を返します。
汎用形式のパスの filename() 部分がピリオド (.
) を含み、特別なファイルシステム要素ドットまたはドット-ドットでなければ、拡張子は、最も右のピリオドで始まり (ピリオドを含みます)、そのパス名の最後までの、部分文字列です。
ファイル名の最初の文字がピリオドの場合、そのピリオドは無視されます (".profile" のようなファイル名は、拡張子とはみなされません)。
パス名が .
または ..
の場合、または filename() に .
文字が含まれていない場合は、空のパスが返されます。
拡張子に追加の要素 (代替データストリームや区分データセット名など) があるファイルシステム用の実装では、追加の動作が定義される場合があります。
目次 |
[編集] 引数
(なし)
[編集] 戻り値
現在のパス名の拡張子、または拡張子がない場合は空のパス。
[編集] 例外
(なし)
[編集] ノート
この関数によって返される拡張子にはピリオドが含まれます。 これにより、ピリオドで終わるファイル ("." を返します) と拡張子のないファイル ("" を返します) を区別できます。
非 POSIX システムでは、汎用形式が同じであっても p.stem()+p.extension() != p.filename() となる可能性があります。
[編集] 例
Run this code
#include <iostream> #include <filesystem> 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"
[編集] 関連項目
パスのファイル名部分を返します (パブリックメンバ関数) | |
パスの語幹部分を返します (パブリックメンバ関数) | |
拡張子を置換します (パブリックメンバ関数) | |
対応するパス要素が空でないかどうか調べます (パブリックメンバ関数) |