Namespaces
Variants

std::experimental::filesystem::recursive_directory_iterator:: depth

From cppreference.net
int depth ( ) const ;
(filesystem TS)

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 <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';
    }
    fs::remove_all("sandbox");
}

Salida:

"sandbox/a"
 "sandbox/a/b"
  "sandbox/a/b/c"
  "sandbox/a/b/d"
   "sandbox/a/b/d/e"
  "sandbox/a/b/file1.txt"
"sandbox/syma" -> "a"