Siguiendo la tónica de comparar códigos similares en delphi y C/C++ y tras leer el hilo Buscar Archivos en Carpetas y sub-Carpetas con filtros voy a poner un ejemplo base para hacer una lista de todos los archivos de una carpeta y sus subcarperas respectivas.
La función es recursiva y es la base para ir añadiendo funcionalidades. Creo que se entendrá muy bien.
cpp
void ListaDir(String Dir, TStrings* Salida) { TSearchRec sr; if(!FindFirst(Dir + "\\*.*", faAnyFile, sr)) do{ if(sr.Name != "." && sr.Name != ".."){ if(sr.Attr & faDirectory) ListaDir(Dir + "\\" + sr.Name, Salida); else Salida->Add(Dir + "\\" + sr.Name); } } while (!FindNext(sr)); FindClose(sr); }
Un sencillo ejemplo de uso es el siguiente:
cpp
void __fastcall TForm1::Button1Click(TObject *Sender) { ListaDir("D:\\Archivos de programa", ListBox1->Items); }
Saludos.