std::filesystem::path::replace_extension (3) Linux Manual Page
std::filesystem::path::replace_extension – std::filesystem::path::replace_extension
Synopsis
path &replace_extension(const path &replacement = path());
(1)(since C++ 17)
Replaces the extension with replacement
or removes it when the default value of replacement is used.
Firstly,
if this path has an extension(), it is removed from the generic - format view of the pathname.
Then,
a dot character is appended to the generic - format view of the pathname, if replacement is not empty or does not begin with a dot character.
Then replacement is appended as if by
operator+=(replacement)
Parameters
replacement – the extension to replace with
Return value
*this
Exceptions
(none)
Notes
The type of replacement is std::filesystem::path even though it is not intended to represent an object on the file system in order to correctly account for the filesystem character encoding.
Example
// Run this code
#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';
}
Output:
See also
extension (public member function)
filename (public member function)
stem (public member function)
has_extension (public member function)
