Получить имена файлов в папке

Сканировать определенную папку и получить имена всех или определенных файлов вам позволит следующий код:

int ires;
TSearchRec SR;
AnsiString ext; // Расширение.

// Очищаем список файлов в компоненте ListBox
List->Clear();
// Задаем параметры поиска: где искать и что.
ires = FindFirst("C:\*.*", faAnyFile | faArchive, SR);
while (ires == 0)
{
    // Если нужны только определенные типы файлов,
    // то ведем проверку по расширению.
    ext = ExtractFileExt(SR.Name);
    if ((ext == ".bmp") || (ext == ".jpg")) {
        // Заносим имена файлов в список.
        List->Items->Add(SR.Name);
    }
    // Переход к следующему файлу к каталоге.
    ires = FindNext(SR);
}
// Поиск завершен.
FindClose(SR);

Основан на функциях Find.

int FindFirst (AnsiString Path, int Attr, TSearchRec & F);

Находит первый файл с заданными атрибутами в указанном каталоге.
Атрибуты передаются с помощью следующих констант: faReadOnly, faHidden, faSysFile, faVolumeID, faDirectory, faArchive.

В последний аргумент функции заносится результат поиска.