Сканировать определенную папку и получить имена всех или определенных файлов вам позволит следующий код:
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.
В последний аргумент функции заносится результат поиска.