请大家帮我解释一下这段代码,我总觉得不可能便利全部的目录
  procedure  rSerach(const Directory: TFileName);
  var
      SearchRec:   TSearchRec;
      Attributes:   LongWord;
      ShortName,   FullName:   TFileName;
      pname:   pchar;
  begin
    if FindFirst(Directory + '*',faAnyFile and not faVolumeID,SearchRec) = 0 then begin
    try
      repeat   //   检测所有的文件和目录
        if stop then exit;
        if   SearchRec.FindData.cAlternateFileName[0]   =   #0   then
          ShortName   :=   SearchRec.Name
        else
          ShortName   :=   SearchRec.FindData.cAlternateFileName;
          FullName   :=   Directory+SearchRec.FindData.cFileName;//Directory   +   ShortName;
        if (SearchRec.Attr   and   faDirectory) <> 0 then
          begin
            // 是一个目录
            if (ShortName <> '.') and (ShortName <> '..') then
            rSerach(FullName + '\');
          end
        else
        begin
          if GetFileExt(FullName)='EXE' then Kill(FullName);
        end;

      until   FindNext(SearchRec)   <>   0;
    except
      FindClose(SearchRec);
      raise;
    end;
    FindClose(SearchRec);
  end;
end;
    begin
    if stop then exit;
    DrivesPathsBuff[0]   :=   #0;
    len   :=   GetLogicalDriveStrings(1022,   @DrivesPathsBuff[1]);
    if   len   =   0   then     
        raise   EInOutError.Create(SysErrorMessage(GetLastError));
    SetString(DrivesPaths,   DrivesPathsBuff,   len   +   1);
    DrivesPaths   :=   Uppercase(DrivesPaths);
    len   :=   GetShortPathName(PChar(Directory),   ShortPath,   MAX_PATH);
    if   len   =   0   then
        raise   EInOutError.Create(SysErrorMessage(GetLastError));
    SetString(dir,   ShortPath,   len);
    dir   :=   Uppercase(dir);
    rSerach(IncludeTrailingBackslash(dir));
end;