std::filesystem::path::replace_extension

< cpp‎ | filesystem‎ | path
 
 
 
 
path& replace_extension( const path& replacement = path() );
(1) (C++17 起)

replacement 替换扩展名,或在使用 replacement 的默认值时移除它。

首先,若此路径拥有 extension() ,则首先从路径名的通用格式视角移除它。

然后若 replacement 非空且不以点字符开始,则添加点字符到路径名的通用格式视图。

然后如同用 operator+=(replacement) 后附 replacement

参数

replacement - 要替换的扩展名

返回值

*this

异常

(无)

注意

replacement 的类型是 std::filesystem::path ,即使并非有意用它表示文件系统上的对象,这是为了正确认定文件系统字符编码。

示例

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
 
int main()
{
    fs::path p = "/foo/bar.jpeg";
    std::cout << "Was: " << p << '\n';
    p.replace_extension(".jpg");
    std::cout << "Now: " << p << '\n';
}

输出:

Was: "/foo/bar.jpeg"
Now: "/foo/bar.jpg"

参阅

返回文件扩展名路径组分
(公开成员函数)
返回文件名路径组分
(公开成员函数)
返回主干路径组分
(公开成员函数)
检查对应路径元素是否非空
(公开成员函数)