std::filesystem::recursive_directory_iterator:: depth
| Member functions | ||||
|
recursive_directory_iterator::depth
|
||||
| Non-member functions | ||||
|
int
depth
(
)
const
;
|
(desde C++17) | |
Devuelve el número de directorios desde el directorio inicial hasta el directorio actualmente iterado, es decir, la profundidad actual de la jerarquía de directorios.
El directorio inicial tiene una profundidad de 0 , sus subdirectorios tienen profundidad 1 , etc.
El comportamiento es indefinido si * this es el iterador final.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
Profundidad actual de la jerarquía de directorios.
Excepciones
No lanza nada.
Ejemplo
Este ejemplo utiliza la profundidad de iteración para calcular la sangría de una impresión de árbol de directorios.
#include <filesystem> #include <fstream> #include <iostream> #include <string> namespace fs = std::filesystem; int main() { fs::current_path(fs::temp_directory_path()); 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() << 1, ' ') << *i; if (fs::is_symlink(i->symlink_status())) std::cout << " -> " << fs::read_symlink(*i); std::cout << '\n'; } fs::remove_all("sandbox"); }
Salida:
"sandbox/syma" -> "a"
"sandbox/a"
"sandbox/a/b"
"sandbox/a/b/d"
"sandbox/a/b/d/e"
"sandbox/a/b/file1.txt"
"sandbox/a/b/c"