Borland C++ Builder FAQ - Поиск файлов в каталоге и его подкаталогах

ОГЛАВЛЕНИЕ


Поиск файлов в каталоге и его подкаталогах

// Для поиска файлов в каталоге и его подкаталогах напишите  следующий код:
void ListFiles(AnsiString path, TStrings* List)
{
// Эта процедура выводит список файлов и вызывает
// саму себя для всех каталогов
TSearchRec sr;
if (FindFirst(path+"*.*",  faAnyFile, sr) == 0)
{
     do
     {
         if (sr.Attr &  faDirectory)
          {
              if (sr.Name!=".")
              if  (sr.Name!="..")
              {
                  ListFiles(path+sr.Name+"\\",List);// Рекурсивный  вызов
              }
          }
          else
          {
           AnsiString  Ext=ExtractFileExt(sr.Name).UpperCase();
           if  (Ext==".CPP")
           List->Add(path+sr.Name);
          }
     }
     while  (FindNext(sr) ==  0);
     FindClose(sr);
}
    Application->ProcessMessages();
}

void  __fastcall TForm1::Button1Click(TObject  *Sender)
{
    ListFiles("c:\\",Memo1->Lines);
}