![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск [D6, Win95/98, Win2k]
Sam Stone © (2002-10-05 20:51:00)Возникла такая проблема - надо пройтись по всем папкам винды в поисках файла(exe,dll,ocx), а как сделать не знаю :(. Будте добры, помогите алгоритмом.
Sam Stone (2002-10-07 15:30:00) [1]
> Вирь хочеш написать?
не, винду ужать(упэиксом)
Xtreme (2002-10-05 22:58:00) [2]Вирь хочеш написать? :о) Ладно...
Cмотри пример:
program FindIn;
uses SysUtils;
var f:TextFile;
d:boolean;
function fFindIn(s,ex:string):string;
var sr:tSearchRec;
r:integer;
begin
r:=FindFirst(s+ex,faAnyFile,sr);
repeat
if r=0 then
begin
if (sr.attr=faDirectory)and d and
not((sr.name=".")or(sr.name="..")) then fFindIn(s+sr.name+"\",ex);
if not((sr.name=".")or(sr.name="..")) then Writeln(F,s+sr.name); //Здесь из sr.name выделяешь расширение, и если оно "exe","com","ocx", то заража... ну вообщем, че ты хотел сделать.
end;
r:=FindNext(sr);
until not(r=0);
end;
begin
if ParamCount>1 then
begin
d:=(ParamStr(3)="dir");
AssignFile(F,ParamStr(2));
ReWrite(F);
fFindIn(ParamStr(1),"*.*");
CloseFile(F);
end end.
Supra (2002-10-05 22:46:00) [3]Я кстати насчёт этого тоже хотел спросить: как искать папки рекурсивно. Что такое рекурсия вообще???
rhf (2002-10-05 22:39:00) [4]findFirst/Next + рекурсия
посмотрите любой пример копирования/удаления каталога (есть в FAQ)