RE:ficheros de un directorio
si estas en Windows debes utilizar la API
handle = FindFirstFile(nombre, &estructura_especial)
nombre puede ser cualquie Path como por ejemplo c:\winnt\*.*
estructura_especial es una estructura de tipo WIN32_FIND_DATA
en la cual será retornada la información del archivo/directorio.
handle es una variable de tipo HANDLE, que utilizaras con la API FindNextFile para encontrar el siguiente archivo que cumpla con las caracteristicas.
ej:
WIN32_FIND_DATA fData;
HANDLE hFile;
if ((hFile = FindFirstFile("c:\\*.*", &fData)) == INVALID_HANDLE_VALUE)
return FALSE;
do {
MessageBox(0, fData.cFileName, 0, 0);
if (fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
MessageBox(0, " y es un directorio", 0, 0);
} while (FindNextFile(hFile, &fData);
Espero de ayude