std::experimental::filesystem:: directory_iterator
|
Défini dans l'en-tête
<experimental/filesystem>
|
||
|
class
directory_iterator
;
|
(filesystem TS) | |
directory_iterator
est un
LegacyInputIterator
qui itère sur les éléments
directory_entry
d'un répertoire (mais ne visite pas les sous-répertoires). L'ordre d'itération n'est pas spécifié, sauf que chaque entrée de répertoire n'est visitée qu'une seule fois. Les noms de chemin spéciaux
dot
et
dot-dot
sont ignorés.
Si le
directory_iterator
est avancé au-delà de la dernière entrée de répertoire, il devient égal à l'itérateur construit par défaut, également appelé itérateur de fin. Deux itérateurs de fin sont toujours égaux, déréférencer ou incrémenter l'itérateur de fin est un comportement indéfini.
Si un fichier ou un répertoire est supprimé ou ajouté à l'arborescence de répertoires après la création de l'itérateur de répertoire, il n'est pas spécifié si le changement serait observé via l'itérateur.
Table des matières |
Types membres
| Type de membre | Définition |
value_type
|
filesystem::directory_entry
|
difference_type
|
std::ptrdiff_t
|
pointer
|
const filesystem::directory_entry*
|
reference
|
const filesystem::directory_entry&
|
iterator_category
|
std::input_iterator_tag
|
Fonctions membres
|
construit un itérateur de répertoire
(fonction membre publique) |
|
|
(destructor)
|
destructeur par défaut
(fonction membre publique) |
|
assigne le contenu
(fonction membre publique) |
|
|
accède à l'entrée pointée
(fonction membre publique) |
|
|
avance à l'entrée suivante
(fonction membre publique) |
Fonctions non membres
|
prise en charge de la boucle for basée sur des plages
(fonction) |
De plus, operator == et operator ! = sont fournis, soit en tant que membres soit en tant que non-membres, comme requis par LegacyInputIterator .
Exemple
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directories("sandbox/a/b"); std::ofstream{"sandbox/file1.txt"}; std::ofstream{"sandbox/file2.txt"}; for (const fs::directory_entry& entry : fs::directory_iterator{"sandbox"}) std::cout << entry << '\n'; fs::remove_all("sandbox"); }
Sortie possible :
"sandbox/a" "sandbox/file1.txt" "sandbox/file2.txt"
Voir aussi
|
un itérateur vers le contenu d'un répertoire et de ses sous-répertoires
(classe) |
|
|
options pour l'itération du contenu des répertoires
(énumération) |
|
|
une entrée de répertoire
(classe) |