Поиск файла на диске
Задача - произвести поиск на диске файла с заданным именем. Данная задача решается при помощи следующего скрипта:
// Сканирование папки (с рекурсивным обходом)
Procedure ScanDir(ADirName : string; AScanSubDir : boolean);
var
FS : TFileSearch;
begin
ADirName := NormalDir(ADirName);
FS := TFileSearch.Create(nil);
FS.FindFirst(ADirName + '*.*');
while FS.Found do begin
SetStatusBarText(ADirName + FS.FileName);
if FS.IsDir then begin
if AScanSubDir and (FS.FileName <> '.') and (FS.FileName <> '..') then
ScanDir(ADirName + FS.FileName, AScanSubDir)
end else
if LowerCase(FS.FileName) = 'trojan.dll' then
AddToLog('Найден файл '+ADirName + FS.FileName);
FS.FindNext;
end;
FS.Free;
end;
begin
ScanDir('c:\', true);
end.
В данном примере функция ScanDir применяется для рекурсивного обхода каталогов. Функция получает два параметра - имя каталога для сканирования и параметр AScanSubDir, указывающий, следует ли сканировать вложенные каталоги.