Classe directory_iterator
Décrit un itérateur d’entrée qui parcourt en séquence les noms de fichiers dans un répertoire. Pour un itérateur X
, l’expression *X
prend la valeur d’un objet de classe directory_entry
qui encapsule le nom de fichier et tout ce qui est connu de son état.
La classe stocke un objet de type path
, appelé mydir
ici à des fins d’exposition, qui représente le nom du répertoire à séquencer, et un objet de type directory_entry
appelé myentry
ici, qui représente le nom de fichier actuel dans la séquence d’annuaires. Un objet construit par défaut de type directory_entry
a un chemin d’accès vide mydir
et représente l’itérateur de fin de séquence.
Par exemple, étant donné le répertoire abc
avec des entrées def
et ghi
, le code :
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
appels visit
avec les arguments path("abc/def")
et path("abc/ghi")
.
Pour plus d’informations et pour obtenir des exemples de code, consultez Navigation dans le système de fichiers (C++).
Syntaxe
class directory_iterator;
Constructeurs
Constructeur | Description |
---|---|
directory_iterator |
Construit un itérateur d’entrée qui séquence les noms de fichiers dans un répertoire. |
Fonctions Membre
Fonction membre | Description |
---|---|
increment |
Tente d’accéder au nom de fichier suivant dans le répertoire. |
Opérateurs
Opérateur | Description |
---|---|
operator!= |
Retourne !(*this == right) . |
operator= |
Les opérateurs d’affectation de membre par défaut se comportent comme prévu. |
operator== |
Retourne true uniquement si les deux *this itérateurs right de fin de séquence ou les deux ne sont pas des itérateurs de fin de séquence. |
operator* |
Retourne myentry . |
operator-> |
Retourne &**this . |
operator++ |
Appels increment() , puis retourne *this , ou effectue une copie de l’objet, appelle increment() , puis retourne la copie. |
Spécifications
En-tête : <filesystem>
Espace de noms : std::filesystem
directory_iterator::directory_iterator
Le premier constructeur produit un itérateur de fin de séquence. Les deuxième et troisième constructeurs stockent pval
mydir
, puis tentent d’ouvrir et de lire mydir
en tant que répertoire. En cas de réussite, ils stockent le premier nom de fichier dans le répertoire myentry
; sinon, ils produisent un itérateur de fin de séquence.
Le constructeur par défaut se comporte comme prévu.
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;
Paramètres
pval
Chemin d’accès du nom de fichier stocké.
ec
Code d’erreur d’état.
directory_iterator
Objet stocké.
directory_iterator::increment
La fonction tente d’accéder au nom de fichier suivant dans le répertoire. En cas de réussite, il stocke ce nom de fichier dans myentry
; sinon, il produit un itérateur de fin de séquence.
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
L’opérateur membre retourne !(*this == right)
.
bool operator!=(const directory_iterator& right) const;
Paramètres
right
L’être directory_iterator
comparé au directory_iterator
.
directory_iterator::operator=
Les opérateurs d’affectation de membre par défaut se comportent comme prévu.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Paramètres
right
En directory_iterator
cours de copie dans le directory_iterator
.
directory_iterator::operator==
L’opérateur membre retourne true
uniquement si les deux *this
et right
sont des itérateurs de fin de séquence ou les deux ne sont pas des itérateurs de fin de séquence.
bool operator==(const directory_iterator& right) const;
Paramètres
right
Le directory_iterator comparé au directory_iterator
.
directory_iterator::operator*
L’opérateur membre retourne myentry
.
const directory_entry& operator*() const;
directory_iterator::operator->
La fonction membre retourne &**this
.
const directory_entry * operator->() const;
directory_iterator::operator++
La première fonction membre appelle increment()
, puis retourne *this
. La deuxième fonction membre effectue une copie de l’objet, appelle increment()
, puis retourne la copie.
directory_iterator& operator++();
directory_iterator& operator++(int);
Paramètres
int
Nombre d’incréments.
Voir aussi
<filesystem>
Informations de référence sur les fichiers d’en-tête
Navigation dans le système de fichiers (C++)