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
Ejecuta este código
#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) | |
Avanza a la siguiente entrada. (función miembro pública) |