Mírate este ejemplo:
Código:
//---------------------------------------------------------------------------
void ListarDir(String dir, TStrings* sl)
{
TSearchRec sr;
bool finalizado = FindFirst(dir + "\\*.*", faAnyFile, sr);
while (!finalizado)
{
if(sr.Name != "." && sr.Name != "..")
{
if (sr.Attr & faDirectory)
ListarDir(dir + "\\" + sr.Name, sl);
else
sl->Add(dir + "\\" + sr.Name);
}
finalizado = FindNext(sr);
}
FindClose(sr);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListarDir("C:\\Downloads", ListBox1->Items);
}
Saludos.