Поиск файлов по маске по всему дереву каталогов, начиная с указанного

Советы » Файлы » Поиск файлов по маске по всему дереву каталогов, начиная с указанного

{ **** 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com