Espacios de nombres
Variantes
Acciones

std::filesystem::recursive_directory_iterator::disable_recursion_pending

De cppreference.com
 
 
 
 
void disable_recursion_pending();
(desde C++17)

Deshabilita la recursividad al subdirectorio al que se hace referencia actualmente, si lo hubiera.

La llamada modifica el indicador de recursividad 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 se está refiriendo actualmente a un subdirectorio que no ha sido visitado.

El estado del indicador de recursividad pendiente puede consultarse con recursion_pending(), que es false después de esta llamada. Se restablece de nuevo a true después de increment, y su valor inicial también es true.

El comportamiento no está definido si *this es el iterador final.

Contenido

[editar]Parámetros

(Ninguno)

[editar]Valor de retorno

(Ninguno)

[editar]Excepciones

Puede lanzar excepciones definidas por la implementación.

[editar]Ejemplo

#include <cstdlib>#include <fstream>#include <iostream>#include <string>#include <filesystem>namespace fs = std::filesystem;   int main(){ fs::current_path(fs::temp_directory_path()); fs::create_directories("entorno_aislado/a/b/c"); fs::create_directories("entorno_aislado/a/b/d/e");std::ofstream("entorno_aislado/a/b/archivo1.txt"); fs::create_symlink("a", "entorno_aislado/syma");std::system("tree entorno_aislado");for(auto i = fs::recursive_directory_iterator("entorno_aislado"); i != fs::recursive_directory_iterator();++i ){std::cout<<std::string(i.depth()*2, ' ')<<*i;if(fs::is_symlink(i->symlink_status()))std::cout<<" -> "<< fs::read_symlink(*i);std::cout<<'\n';   // no descender a "b"if(i->path().filename()=="b") i.disable_recursion_pending();} fs::remove_all("entorno_aislado");}

Posible salida:

entorno_aislado ├── a │   └── b │   ├── c │   ├── d │   │   └── e │   └── archivo1.txt └── syma -> a   "entorno_aislado/a" "entorno_aislado/a/b" "entorno_aislado/syma" -> "a"

[editar]Véase también

Verifica si la recursión está deshabilitada para el directorio actual.
(función miembro pública)[editar]
Avanza a la siguiente entrada.
(función miembro pública)[editar]
close