名前空間
変種

std::filesystem::path::stem

提供: cppreference.com
 
 
 
 
<tbody> </tbody>
path stem() const;
(C++17以上)

汎用形式のパスによって表されるファイル名から拡張子を除いたものを返します。

filename() の先頭から、最後のピリオド (.) 文字の直前までの、部分文字列を返します。 ただし以下の例外があります。

ファイル名の最初の文字がピリオドの場合、そのピリオドは無視されます (".profile" のようなファイル名は、拡張子とはみなされません)。

ファイル名が特別なファイルシステム要素ドットまたはドット-ドットのいずれかである場合、またはファイル名にピリオドが含まれていない場合、この関数は filename() 全体を返します。

引数

(なし)

戻り値

パスによって表されるファイル名の語幹 (すなわち、最後の拡張子を除いたファイル名)。

例外

(なし)

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main()
{
    std::cout << fs::path("/foo/bar.txt").stem() << '\n'
              << fs::path("/foo/.bar").stem() << '\n';

    for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem())
        std::cout << p.extension() << '\n';
}

出力:

"bar"
".bar"
".tar"
".baz"
".bar"

関連項目

パスのファイル名部分を返します
(パブリックメンバ関数) [edit]
パスのファイル拡張子部分を返します
(パブリックメンバ関数) [edit]