Namespaces
Variants

std::filesystem::path:: remove_filename

From cppreference.net
path & remove_filename ( ) ;
(C++17以降)

指定されたジェネリック形式のパスから、単一のジェネリック形式のファイル名コンポーネント( filename によって返されるもの)を削除します。

この関数の完了後、 has_filename false を返します。

目次

パラメータ

(なし)

戻り値

* this

例外

実装定義の例外をスローする可能性があります。

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    fs::path p;
    std::cout << std::boolalpha
              << (p = "foo/bar").remove_filename() << '\t' << p.has_filename() << '\n'
              << (p = "foo/").remove_filename() << '\t' << p.has_filename() << '\n'
              << (p = "/foo").remove_filename() << '\t' << p.has_filename() << '\n'
              << (p = "/").remove_filename() << '\t' << p.has_filename() << '\n'
              << (p = "").remove_filename() << '\t' << p.has_filename() << '\n';
}

出力:

"foo/"  false
"foo/"  false
"/"     false
"/"     false
""      false

関連項目

ファイル名パスコンポーネントを返す
(公開メンバ関数)
最後のパスコンポーネントを別のパスで置き換える
(公開メンバ関数)
対応するパス要素が空でないかチェックする
(公開メンバ関数)