Namespaces
Variants

std::filesystem::directory_entry:: replace_filename

From cppreference.net
void replace_filename ( const std:: filesystem :: path & p ) ;
(1) (C++17以降)
void replace_filename ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(2) (C++17以降)

ディレクトリエントリのファイル名を変更します。

パスメンバーを効果的に変更します。具体的には path. replace_filename ( p ) を実行し、キャッシュされた属性を更新するために refresh を呼び出します。エラーが発生した場合、キャッシュされた属性の値は未指定となります。

この関数はファイルシステムへの変更を一切コミットしません。

目次

パラメータ

p - 現在格納されているパスの親パスに追加するパス
ec - 例外を投げないオーバーロードにおけるエラー報告用出力パラメータ

戻り値

(なし)

例外

noexcept でマークされていないオーバーロードは、 メモリ確保に失敗した場合 std::bad_alloc をスローする可能性があります。

1) 基盤となるOS APIエラーが発生した場合、 std::filesystem::filesystem_error をスローします。これは p を第一パス引数、OSエラーコードをエラーコード引数として構築されます。
2) オペレーティングシステムAPI呼び出しが失敗した場合、 std:: error_code & パラメータにOS APIエラーコードを設定し、エラーが発生しなかった場合は ec. clear ( ) を実行します。

#include <filesystem>
#include <iostream>
int main()
{
    namespace fs = std::filesystem;
    {
        fs::directory_entry entry{"alpha"};
        std::cout << entry << '\n';
        entry.replace_filename("omega");
        std::cout << entry << '\n';
    }
    {
        fs::directory_entry entry{"/alpha/"};
        std::cout << entry << '\n';
        entry.replace_filename("omega");
        std::cout << entry << '\n';
    }
}

出力:

"alpha"
"omega"
"/alpha/"
"/alpha/omega"

関連項目

内容を割り当てる
(公開メンバ関数)
最後のパス構成要素を別のパスで置き換える
( std::filesystem::path の公開メンバ関数)