No especificas el lenguaje (C/C++) por lo que te daré una respuesta genérica.
Tanto C como C++ carecen de un mecanismo estándar para interactuar con el árbol de directorios. Tienes, por tanto, dos posibilidades:
- Buscar una librería de terceros que sea multiplataforma y te proporcione la funcionalidad buscada
- Utilizar directamente las utilidades que te proporciona la API del sistema operativo. (Esta opción no será portable entre Linux/Windows por ejemplo)
En el caso de soluciones multiplataforma en C++ puedes optar por usar
boost filesystem module
Otra opción es usar
tinydir, que imagino que funcionará tanto en C como en C++.
Si tu opción pasa por hablar directamente con el sistema operativo, en el caso de Linux puedes usar la librería dirent:
Código C:
Ver originalDIR* dirp = opendir(".");
struct dirent *dp;
readdir(tableDir); // ignorar '.'
readdir(tableDir); // ignorar '..'
while ((dp = readdir(dirp)) != NULL)
closedir(dirp);
En el caso de Windows te toca buscar la documentación en la msdn. No tengo tiempo ahora mismo de investigarlo por mi cuenta.
Un saludo.