#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
void mostrarArbol(const char *directorio, int nivel) { DIR *dir;
struct dirent *entrada;
struct stat info;
char ruta[1024];
dir = opendir(directorio);
if (dir == NULL) { printf("%*s[Error al abrir %s]\n", nivel * 4, "", directorio); return;
}
while ((entrada = readdir(dir)) != NULL) { // Saltar "." y ".."
if (strcmp(entrada->d_name, ".") == 0 || strcmp(entrada->d_name, "..") == 0)
continue;
// Construir la ruta completa
snprintf(ruta, sizeof(ruta), "%s\\%s", directorio, entrada->d_name);
stat(ruta, &info);
// Mostrar con indentación
printf("%*s|- %s\n", nivel * 4, "", entrada->d_name);
// Si es directorio, hacer llamada recursiva
if (S_ISDIR(info.st_mode)) { mostrarArbol(ruta, nivel + 1);
}
}
closedir(dir);
}
int main() { printf("Árbol de directorios en C:\\\n"); mostrarArbol("C:\\", 0); return 0;
}