名前空間
変種
操作

std::filesystem::directory_entry::replace_filename

提供: cppreference.com
 
 
 
 
void replace_filename( const std::filesystem::path& p );
void replace_filename( const std::filesystem::path& p, std::error_code& ec );
(C++17以上)

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

実質的に path.replace_filename(p) によって path メンバを変更し、キャッシュされた属性を更新するために refresh を呼びます。 エラーが発生した場合、キャッシュされた属性の値は未規定です。

この関数はファイルシステムに対して何の変更も行いません。

目次

[編集] 引数

p - 現在格納されているパスの���パスに追加するパス
ec - 例外を投げないオーバーロードでエラーを報告するための出力引数

[編集] 戻り値

(なし)

[編集] 例外

std::error_code& 引数を取らないオーバーロードは、ベースとなる OS の API でエラーが発生した場合、第1パス引数に p、エラーコード引数に OS のエラーコードを指定して構築された filesystem_error を投げます。 std::error_code& 引数を取るオーバーロードは、 OS の API 呼び出しが失敗した場合、その引数を OS の API のエラーコードに設定し、エラーが発生しない場合は ec.clear() を実行します。 noexcept 指定のないあらゆるオーバーロードは、メモリ確保に失敗した場合 std::bad_alloc を投げる可能性があります。

[編集]

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

出力:

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

[編集] 関連項目

内容を代入します
(パブリックメンバ関数) [edit]
パスの最後の要素を別のパスに置換します
(std::filesystem::pathのパブリックメンバ関数) [edit]