std::experimental::filesystem::path::extension
From cppreference.com
< cpp | experimental | fs | path
| path extension() const; |
(filesystem TS) | |
パスのファイル名コンポーネントの拡張子を返します*this。
パスの filename() コンポーネントにピリオド (.) が含まれており、特殊なファイルシステム要素である dot または dot-dot のいずれでもない場合、*拡張子*は最も右のピリオド(ピリオドを含む)からパス名の末尾までの部分文字列になります。
パス名が . または .. のいずれかである場合、または filename() に . 文字が含まれていない場合、空のパスが返されます。
拡張子に追加の要素(代替データストリームやパーティション化されたデータセット名など)を付加するファイルシステムについては、実装によって追加の動作が定義される場合があります。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
現在のパス名の拡張子。拡張子がない場合は空のパス。
[編集] 例外
実装定義の例外をスローする場合があります。
[編集] 注釈
この関数によって返される拡張子にはピリオドが含まれており、ピリオドで終わるファイル(関数は "." を返します)を、拡張子のないファイル(関数は "" を返します)と区別できるようにします。
任意のパス p に対して、p.stem()+p.extension() == p.filename() です。
[編集] 例
このコードを実行
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::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'; }
出力
".txt" "." "" ".cc" "." "" "" "" ".hidden"
[編集] 関連項目
| ファイル名のパスコンポーネントを返します。 (public member function) | |
| ステムパスコンポーネントを返します。 (public member function) | |
| 拡張子を置き換えます。 (public member function) | |
| 対応するパス要素が空でないかどうかをチェックします。 (public member function) |