Всем доброе время суток!
Задача такая нужно сделать поиск файла во всех вложенных каталогах например с расширением *.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;
Admin: Пользуемся тегами!
Поиск работает НО при условии исли буду искать любые файлы с любым расширением(*.*). Стоит только поставить *.txt или что то другое поиск производится только в том каталоге который указан(Если указан с:\ то ищет только в корне диска а вложенные папки не шарит ).
Помогите Please! Заранее благодарен!