Justo estoy trabajando algo así. Puedes usar las funciones opendir y readdir.
Te doy un ejemplo:
Código C:
Ver originalDIR *directorio;
struct dirent estructura_directorio;
if ((directorio = opendir("/home/guzzano")) != NULL)
{
while ((estructura_directorio = readdir(directorio)) != NULL)
{
// Aquí obtenemos lo que esta dentro del directorio.
puts(estructura_directorio
->d_name
); }
}
else
{
puts("No se pude abrir el directorio"); }
Lo de abrir lo que esta adentro, ya con el nombre de lo que se encuentra en el directorio es más fácil hacerlo. Si solo quieres abrir archivos ya que en la carpeta hay directorios puedes usar stat.
Saludos.