Namespaces
Variants

std::experimental::filesystem::recursive_directory_iterator:: disable_recursion_pending

From cppreference.net
void disable_recursion_pending ( ) ;
(filesystem TS)

Désactive la récursion vers le sous-répertoire actuellement référencé, le cas échéant.

L'appel modifie l'indicateur de récursion en attente sur l'itérateur de telle manière que la prochaine fois que increment est appelé, l'itérateur avancera dans le répertoire courant même s'il référence actuellement un sous-répertoire qui n'a pas été visité.

L'état du drapeau de récursion en attente peut être consulté avec recursion_pending() , qui renvoie false après cet appel. Il est réinitialisé à true après increment , et sa valeur initiale est également true .

Le comportement n'est pas défini si * this est l'itérateur de fin.

Table des matières

Paramètres

(aucun)

Valeur de retour

(aucun)

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

#include <experimental/filesystem>
#include <fstream>
#include <iostream>
#include <string>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::create_directories("sandbox/a/b/c");
    fs::create_directories("sandbox/a/b/d/e");
    std::ofstream("sandbox/a/b/file1.txt");
    fs::create_symlink("a", "sandbox/syma");
    for (auto i = fs::recursive_directory_iterator("sandbox");
             i != fs::recursive_directory_iterator(); ++i)
    {
        std::cout << std::string(i.depth(), ' ') << *i;
        if (fs::is_symlink(i->symlink_status()))
            std::cout << " -> " << fs::read_symlink(*i);
        std::cout << '\n';
        // do not descend into "b"
        if (i->path().filename() == "b")
            i.disable_recursion_pending();
    }
    fs::remove_all("sandbox");
}

Sortie :

"sandbox/a"
 "sandbox/a/b"
"sandbox/syma" -> "a"

Voir aussi

vérifie si la récursion est désactivée pour le répertoire courant
(fonction membre publique)
passe à l'entrée suivante
(fonction membre publique)