directory_iterator
class
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++)