std::filesystem::path::stem
From cppreference.com
< cpp | filesystem | path
| path stem() const; |
(C++17以降) | |
拡張子を取り除いた、汎用形式のパスで識別されるファイル名を返します。
filename() の先頭から、最後のピリオド(.)文字の直前まで、ただし以下の例外を除きます。
- ファイル名の先頭の文字がピリオドの場合、そのピリオドは無視されます(".profile" のようなファイル名は拡張子とは見なされません)。
- ファイル名が特別なファイルシステムコンポーネントである dot または dot-dot のいずれかである場合、またはピリオドを含まない場合、関数は filename() の全体を返します。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
パスで識別されるファイル名のステム(つまり、最後の拡張子を除いたファイル名)です。
[編集] 例外
実装定義の例外をスローする場合があります。
[編集] 例
このコードを実行
#include <filesystem> #include <iostream> namespace fs = std::filesystem; int main() { for (const fs::path p : {"/foo/bar.txt", "/foo/.bar", "foo.bar.baz.tar"}) std::cout << "path: " << p << ", stem: " << p.stem() << '\n'; std::cout << '\n'; for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem()) std::cout << "path: " << p << ", extension: " << p.extension() << '\n'; }
出力
path: "/foo/bar.txt", stem: "bar" path: "/foo/.bar", stem: ".bar" path: "foo.bar.baz.tar", stem: "foo.bar.baz" path: "foo.bar.baz.tar", extension: ".tar" path: "foo.bar.baz", extension: ".baz" path: "foo.bar", extension: ".bar"
[編集] 関連項目
| ファイル名のパスコンポーネントを返します。 (public member function) | |
| ファイルの拡張子パスコンポーネントを返します。 (public member function) |