![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск фаила в каталоге и его подкаталогах [D7, WinXP]
кактусбел © (2004-12-03 20:10:00)Уважаемый мастера вопрос по сабжу
как провести поиск фаилов определенного типа(типа *.exe) в каталоге и во всех его подкаталогах
у меня есть алгоритм основанный на рекурсии но он глючит
Заранее спасибо.
Jel (2004-12-05 20:22:00) [1]
> Anatoly Podgoretsky © (05.12.04 15:14) [13]
Спасибо за новый ник. :) Файл, однако не будет иметь атрибута faDirectory.
Anatoly Podgoretsky (2004-12-05 15:14:00) [2]Сумасшедший программист © (05.12.04 14:57) [8]
И файлы тоже, например характерный файл .forward
кактусбел (2004-12-05 14:57:00) [3]Большое вам всем спасибо !!!
удачи.
Fay (2004-12-04 02:17:00) [4]Прикольно. Я Проводником проверял - думал, что это хорошая проверка 8).
Спасибочки.
Jel (2004-12-04 00:02:00) [5]
> создавать каталог, начинающийся с точки никому не
> запрещено.
Спасибо. Считал, что этого не даст сделать система. Кстати, проверил - Explorer ругает за некорректное имя, а вот из FAR создался запросто.
Игорь Шевченко (2004-12-03 23:57:00) [6]
> А, собственно почему ошибочно?
А потому, что создавать каталог, начинающийся с точки никому не запрещено.
Jel (2004-12-03 23:53:00) [7]
> Не проще, а в ошибочно
А, собственно почему ошибочно? Всегда использую и пока не нарвался на грабли. В чем они?
Anatoly Podgoretsky (2004-12-03 22:02:00) [8]Fay © (03.12.04 21:35) [4]
Проще, но толку то?
Игорь Шевченко (2004-12-03 21:55:00) [9]Fay © (03.12.04 21:35) [4]
Не проще, а в ошибочно
grigory (2004-12-03 21:42:00) [10]:)) проще, но это как говорится дело техники, а суть вроде такая. я просто дал код куска проги:)))
Fay (2004-12-03 21:35:00) [11]2 grigory © (03.12.04 21:03) [1]
>> ((SR.Name='.')or(SR.Name='..'))
А так не проще?
SR.Name[1] = '.'
novice__man (2004-12-03 21:12:00) [12]кактусбел © (03.12.04 20:10)
Уважаемый мастера вопрос по сабжу
как провести поиск фаилов определенного типа(типа *.exe) в каталоге и во всех его подкаталогах
у меня есть алгоритм основанный на рекурсии но он глючит
Новое слово в программировании ГЛЮЧНЫЙ АЛГОРИТМ!!!!!!
FindFirst & FindNext F1 !!!
grigory (2004-12-03 21:04:00) [13]а в маску поиска вместо *.* напишешь *.exe
ну и путь свой указываешь, где искать хочешь!
grigory (2004-12-03 21:03:00) [14]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;