Поиск файлов по маске по всему дереву каталогов, начиная с указанного
Поиск файлов по маске по всему дереву каталогов, начиная с указанного
Поиск файлов по маске по всему дереву каталогов, начиная с указанного Процедура производит фалов по маске в указанном и во всех его вложенных каталогах. Параметр StartFolder указывает на начальный каталог поиска, параметр Mask указывает маску поиска (например ?*.pas?), параметр List указывает на список строк, в которых будут записаны результаты поиска, Необязательный параметр ScanSubFolders указывает на необходимость поиска во вложенных подкаталогах. 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; Источник: X-Program