На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Object Pascal / Как получить список файлов со всеми подкаталогами Сделать домашней страницей Добавить в избранное Написать писмо

Как получить список файлов со всеми подкаталогами



procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var
 SearchRec : TSearchRec;
begin
 if Mask = '' then Mask := '*.*';
 if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
 if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
 begin
   repeat
     Application.ProcessMessages;
     if (SearchRec.Attr and faDirectory) <> faDirectory then
       List.Add(StartDir + SearchRec.Name)
     else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
begin
       List.Add(StartDir + SearchRec.Name + '\');
       ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
     end;
   until FindNext(SearchRec) <> 0;
   FindClose(SearchRec);
 end;
end;


Пример вызова, параметры
1. имя папки
2. маска, по умолчанию *.*
3. хранилище для резульатат,
  любой наследник от TString, например TStringList

procedure TForm1.Button1Click(Sender: TObject);
begin
 ListBox1.Items.Clear;
 ScanDir('c:','',ListBox1.Items);
 Label1.Caption := IntToStr(ListBox1.Items.Count);
end;

С уважением
Анатолий Подгорецкий

Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz