Другие языки программирования и технологии

вопрос для программистов (delphi)

у меня проблема.мне нужно вытянуть из каталога (папки) список всех файлов с одним расширением и засунуть все в массив.ОЧЕНЬ НУЖНО!!!Нашел похожие процедуры: FindFirst и FindNext, но немогу понять, как ими воспользоваться
Вот скопировал в DelphiWorde - разбири процедуру и если нужно поменяй в ней поиск по всем каталогам, на поиск в указанном.

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Поиск файлов по маске по всему дереву каталогов, начиная с указанного

Продедура производит фалов по маске в указанном и во всех его вложенных
каталогах.

Параметр StartFolder указывает на начальный каталог поиска,

параметр Mask указывает маску поиска (например '*.pas'),

параметр List указывает на список строк, в которых будут записаны
результаты поиска,

Необязательный параметр ScanSubFolders указывает на необходимость
поиска во вложенных подкаталогах.

Зависимости: Windows, SysUtils, Classes, Masks
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 29 апреля 2002 г.
***************************************************** }

procedure FindFiles(StartFolder, Mask: string; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
StartFolder := IncludeTrailingBackslash(StartFolder);
FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do
with SearchRec do
begin
if (Attr and faDirectory) <> 0 then
begin
if ScanSubFolders and (Name <> '.') and (Name <> '..') then
FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
end
else
begin
if MatchesMask(Name, Mask) then
List.Add(StartFolder + Name);
end;
FindResult := FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;
Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
FindFiles('C:\Program Files\', '*.exe', memo1.Lines, true);
end;
Александр Тюляпин
Александр Тюляпин
716
Лучший ответ
Stanislav Smirnov В FindFirst можно сразу указать нужно расширение файлов:
FindFirst(StartFolder + Mask, faAnyFile, SearchRec);
Елси Вам нужно просто узнать все имена файлов по маске в определённой директории и загрузить их в массив, то стучите в агент, кину примерчик. Или на мыло.