std::filesystem::path::remove_filename - cppreference.com (original) (raw)

| path& remove_filename(); | | (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.

[edit] Parameters

(none)

[edit] Return value

*this

[edit] Exceptions

May throw implementation-defined exceptions.

[edit] Example

#include #include namespace fs = std::filesystem;   int main() { fs::path p; std::cout << std::boolalpha << (p = "foo/bar").remove_filename() << '\t' << p.has_filename() << '\n' << (p = "foo/").remove_filename() << '\t' << p.has_filename() << '\n' << (p = "/foo").remove_filename() << '\t' << p.has_filename() << '\n' << (p = "/").remove_filename() << '\t' << p.has_filename() << '\n' << (p = "").remove_filename() << '\t' << p.has_filename() << '\n'; }

Output:

"foo/" false "foo/" false "/" false "/" false "" false

[edit] See also

| | returns the filename path component (public member function) [edit] | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | replaces the last path component with another path (public member function) [edit] | | | checks if the corresponding path element is not empty (public member function) |