namespace std::filesystem { class directory_entry { public: // [directory_entry.cons], constructors and destructor explicit directory_entry(const path& p); directory_entry() noexcept = default; directory_entry(const directory_entry&) = default; directory_entry(directory_entry&&) noexcept = default; ~directory_entry(); // assignments: directory_entry& operator=(const directory_entry&) = default; directory_entry& operator=(directory_entry&&) noexcept = default; // [directory_entry.mods], modifiers void assign(const path& p); void replace_filename(const path& p); // [directory_entry.obs], observers const path& path() const noexcept; operator const path&() const noexcept; file_status status() const; file_status status(error_code& ec) const noexcept; file_status symlink_status() const; file_status symlink_status(error_code& ec) const noexcept; bool operator< (const directory_entry& rhs) const noexcept; bool operator==(const directory_entry& rhs) const noexcept; bool operator!=(const directory_entry& rhs) const noexcept; bool operator<=(const directory_entry& rhs) const noexcept; bool operator> (const directory_entry& rhs) const noexcept; bool operator>=(const directory_entry& rhs) const noexcept; private: path pathobject; // exposition only }; }
A directory_entry object stores a path object.
explicit directory_entry(const path& p);
Effects: Constructs an object of type directory_entry.
Postconditions: path() == p.
Postconditions: path() == p.
void replace_filename(const path& p);
Postconditions: path() == x.parent_path() / p where x is the value of path() before the function is called.
const path& path() const noexcept;
operator const path&() const noexcept;
Returns: pathobject.
file_status status() const;
file_status status(error_code& ec) const noexcept;
Returns: status(path()) or status(path(), ec), respectively.
Throws: As specified in [fs.err.report].
file_status symlink_status() const;
file_status symlink_status(error_code& ec) const noexcept;
Returns: symlink_status(path()) or symlink_status(path(), ec), respectively.
Throws: As specified in [fs.err.report].
bool operator==(const directory_entry& rhs) const noexcept;
Returns: pathobject == rhs.pathobject.
bool operator!=(const directory_entry& rhs) const noexcept;
Returns: pathobject != rhs.pathobject.
bool operator< (const directory_entry& rhs) const noexcept;
Returns: pathobject < rhs.pathobject.
bool operator<=(const directory_entry& rhs) const noexcept;
Returns: pathobject <= rhs.pathobject.
bool operator> (const directory_entry& rhs) const noexcept;
Returns: pathobject > rhs.pathobject.
bool operator>=(const directory_entry& rhs) const noexcept;
Returns: pathobject >= rhs.pathobject.