Информатика. Программирование в Delphi
302
3. Перед разделом объявления глобальных переменных
Var
объявите
следующую процедуру.
//поиск файлов типа
tp
в указанном каталоге
dir
//список файлов возвращается в переменную
filelist
procedure find(dir,tp:string;var filelist:TStringList; var count:integer);
4. В разделе
Implementation
создайте процедуру
find
.
//поиск файлов типа
tp
в указанном каталоге
dir
//список файлов возвращается в переменную
filelist,
//а в переменную
count
записывается количество найденных файлов
procedure find(dir,tp:string;var filelist:TStringList;var count:integer);
var
//информация о найденном файле или каталоге
searchrec:TSearchRec;
begin
//если каталог существует
if DirectoryExists(dir) then
begin
//установка текущей директории, т.е. места, где искать файлы
SetCurrentDir(dir);
if dir[length(dir)]<>'\' then
dir:=dir+'\';
//если файл найден
if FindFirst(tp,faAnyFile,searchrec)=0 then
repeat
//добавление полного имени файла в список
filelist
filelist.Add(Dir+searchrec.Name);
//увеличение счетчика
inc(count);
//если файл не найден
until FindNext(searchrec)<>0;
/поиск в подкаталогах данного каталога/
//если найдена любая директория или файл
if FindFirst('*',faAnyFile,searchrec)=0 then
repeat
//если найден подкаталог
if searchrec.Attr and faDirectory=faDirectory then
//если директория не команда выход из директории (..)
if searchrec.Name[1]<>'.' then
begin
//вход в каталог
ChDir(searchrec.Name);
//поиск файлов в каталоге
find(GetCurrentDir,tp,filelist,count);