Partager via


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