std::filesystem::path::replace_filename
From cppreference.com
                    
                                        
                    < cpp | filesystem | path
                    
                                                            
                    |   path& replace_filename( const path& replacement );  | 
(since C++17) | |
Replaces a single filename component with replacement.
Equivalent to the following:
remove_filename(); operator/=(replacement);
The behavior is undefined if the path has no filename component (has_filename returns false).
Parameters
(none)
Return value
*this
Exceptions
(none)
Example
Run this code
#include <iostream> #include <filesystem> namespace fs = std::filesystem; int main() { std::cout << fs::path("/foo").replace_filename("bar") << '\n' << fs::path("/").replace_filename("bar") << '\n'; }
Output:
"/bar" "bar"
See also
|    replaces the extension  (public member function)  | |
|    returns the filename path component  (public member function)  | |
|    removes filename path component  (public member function)  | |
|    checks if the corresponding path element is not empty  (public member function)  |