# std::filesystem::path::remove_filename

From cppreference.com
< cpp‎ | filesystem‎ | path

path& remove_filename() | (1) | (since C++17)

Removes a single generic-format filename component (as returned by `filename`) from the given generic-format path.

After this function completes, `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/bar").remove_filename() << '\n'
                  << fs::path("foo/").remove_filename() << '\n'
                  << fs::path("/foo").remove_filename() << '\n'
                  << fs::path("/").remove_filename() << '\n';
    }

Output:

    "foo/"
    "foo/"
    "/"
    "/"

### See also

filename | returns the filename path component (public member function)
replace_filename | replaces the last path component with another path (public member function)
has_filename | checks if the corresponding path element is not empty (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/filesystem/path/remove_filename&oldid=105075"