AVZ 5. Руководство пользователя
×

Поиск файла на диске

Задача - произвести поиск на диске файла с заданным именем. Данная задача решается при помощи следующего скрипта:
 
// Сканирование папки (с рекурсивным обходом)
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.
 
В примере использовались: AddToLog, NormalDir, SetStatusBarText
 
В данном примере функция ScanDir применяется для рекурсивного обхода каталогов. Функция получает два параметра - имя каталога для сканирования и параметр AScanSubDir, указывающий, следует ли сканировать вложенные каталоги.