Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Describes an input iterator that sequences through the filenames in a directory. For an iterator X
, the expression *X
evaluates to an object of class directory_entry
that wraps the filename and anything known about its status.
The class stores an object of type path
, called mydir
here for the purposes of exposition, which represents the name of the directory to be sequenced, and an object of type directory_entry
called myentry
here, which represents the current filename in the directory sequence. A default constructed object of type directory_entry
has an empty mydir
pathname and represents the end-of-sequence iterator.
For example, given the directory abc
with entries def
and ghi
, the code:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
calls visit
with the arguments path("abc/def")
and path("abc/ghi")
.
For more information and code examples, see File System Navigation (C++).
Syntax
class directory_iterator;
Constructors
Constructor | Description |
---|---|
directory_iterator |
Constructs an input iterator that sequences through the filenames in a directory. |
Member functions
Member function | Description |
---|---|
increment |
Attempts to advance to the next filename in the directory. |
Operators
Operator | Description |
---|---|
operator!= |
Returns !(*this == right) . |
operator= |
The defaulted member assignment operators behave as expected. |
operator== |
Returns true only if both *this and right are end-of-sequence iterators or both aren't end-of-sequence-iterators. |
operator* |
Returns myentry . |
operator-> |
Returns &**this . |
operator++ |
Calls increment() , then returns *this , or makes a copy of the object, calls increment() , then returns the copy. |
Requirements
Header: <filesystem>
Namespace: std::filesystem
directory_iterator::directory_iterator
The first constructor produces an end-of-sequence iterator. The second and third constructors store pval
in mydir
, then attempt to open and read mydir
as a directory. If successful, they store the first filename in the directory in myentry
; otherwise they produce an end-of-sequence iterator.
The default constructor behaves as expected.
directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;
Parameters
pval
The stored file name path.
ec
The status error code.
directory_iterator
The stored object.
directory_iterator::increment
The function attempts to advance to the next filename in the directory. If successful, it stores that filename in myentry
; otherwise it produces an end-of-sequence iterator.
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
The member operator returns !(*this == right)
.
bool operator!=(const directory_iterator& right) const;
Parameters
right
The directory_iterator
being compared to the directory_iterator
.
directory_iterator::operator=
The defaulted member assignment operators behave as expected.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Parameters
right
The directory_iterator
being copied into the directory_iterator
.
directory_iterator::operator==
The member operator returns true
only if both *this
and right
are end-of-sequence iterators or both aren't end-of-sequence-iterators.
bool operator==(const directory_iterator& right) const;
Parameters
right
The directory_iterator being compared to the directory_iterator
.
directory_iterator::operator*
The member operator returns myentry
.
const directory_entry& operator*() const;
directory_iterator::operator->
The member function returns &**this
.
const directory_entry * operator->() const;
directory_iterator::operator++
The first member function calls increment()
, then returns *this
. The second member function makes a copy of the object, calls increment()
, then returns the copy.
directory_iterator& operator++();
directory_iterator& operator++(int);
Parameters
int
The number of increments.
See also
<filesystem>
Header Files Reference
File System Navigation (C++)