std::filesystem::path::extension
提供: cppreference.com
<tbody>
</tbody>
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"
関連項目
| パスのファイル名部分を返します (パブリックメンバ関数) | |
| パスの語幹部分を返します (パブリックメンバ関数) | |
| 拡張子を置換します (パブリックメンバ関数) | |
| 対応するパス要素が空でないかどうか調べます (パブリックメンバ関数) |