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.