Namespaces
Variants

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

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

Deshabilita la recursión al subdirectorio referenciado actualmente, si existe.

La llamada modifica el indicador de recursión pendiente en el iterador de tal manera que la próxima vez que se llame a increment , el iterador avanzará dentro del directorio actual incluso si actualmente se refiere a un subdirectorio que no ha sido visitado.

El estado de la bandera de recursión pendiente puede consultarse con recursion_pending() , que devuelve false después de esta llamada. Se restablece a true después de increment , y su valor inicial también es true .

El comportamiento es indefinido si * this es el iterador final.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

#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");
}

Salida:

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

Véase también

verifica si la recursión está deshabilitada para el directorio actual
(función miembro pública)
avanza a la siguiente entrada
(función miembro pública)