![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброе время суток!
Задача такая нужно сделать поиск файла во всех вложенных каталогах например с расширением *.txt Вот что я нарыл: Код:
//В разделе public пишем строку: procedure FindFile(Dir:String); //На форму вставляем ListBox1, Button1, Edit1. procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Clear; // очистка списка файлов FindFile(Edit1.Text); // поиск файлов с начальными условиями, заданных в Edit1 end; //Созданная нами вручную процедура поиска: procedure TForm1.FindFile(Dir:String); Var SR:TSearchRec; FindRes:Integer; begin FindRes:=FindFirst(Dir+'*.*',faAnyFile,SR); While FindRes=0 do begin if ((SR.Attr and faDirectory)=faDirectory) and ((SR.Name='.')or(SR.Name='..')) then begin FindRes:=FindNext(SR); Continue; end; if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то begin FindFile(Dir+SR.Name+''); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге Continue; // продолжить цикл end; ListBox1.Items.Add(SR.Name); FindRes:=FindNext(SR); end; FindClose(SR); end; Поиск работает НО при условии исли буду искать любые файлы с любым расширением(*.*). Стоит только поставить *.txt или что то другое поиск производится только в том каталоге который указан(Если указан с:\ то ищет только в корне диска а вложенные папки не шарит ). Помогите Please! Заранее благодарен! Последний раз редактировалось Admin, 01.03.2010 в 10:43. |