Allora devi usare le API di Windows FindFirstFile/FindNextFile/FindClose.
Esempio:
codice:
#include <windows.h>
#include <stdio.h>
int main()
{
    WIN32_FIND_DATA fd;
    HANDLE hFind;
    /* Inizia la ricerca */    
    hFind=FindFirstFile("c:\\cartella\\*.*",&fd);
    /* Se la FindFirstFile restituisce INVALID_HANDLE_VALUE significa che non ha trovato niente */
    if(hFind==INVALID_HANDLE_VALUE)
    {
        fputs("Nessun file trovato o percorso inesistente.",stderr);
        return 1;
    }
    /* Trova tutti gli altri file */
    do
    {
        puts(fd.cFileName);    
    } while(FindNextFile(hFind,&fd));
    FindClose(hFind);
    return 0;
}