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) 当底层操作系统 API 出错时抛出 std::filesystem::filesystem_error ,该异常以 p 作为第一个路径参数,以操作系统错误代码作为错误码参数构造。
2) 若操作系统API调用失败,将 std:: error_code & 参数设置为操作系统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 的公开成员函数)