# std::experimental::filesystem::path::replace_extension

From cppreference.com
< cpp‎ | experimental‎ | fs‎ | path

path& replace_extension( const path& replacement = path() ); | (1) | (filesystem TS)

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.

Then, a dot character is appended if `replacement` is not empty or does not begin with a dot character.

Then `replacement` is appended to the path.

### Parameters

replacement | - | the extension to replace with

### Return value

*this

### Exceptions

(none)

### Example

Run this code

    #include <iostream>
    #include <experimental/filesystem>
    namespace fs = std::experimental::filesystem;

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

Output:

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

### See also

extension | returns the file extension path component (public member function)
filename | returns the filename path component (public member function)
stem | returns the stem path component (public member function)
has_extension | checks if the corresponding path element is not empty (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/fs/path/replace_extension&oldid=78399"