#pas
procedure THIFileSearch.Search;
var FindHandle:THandle;
begin
FindHandle := FindFirstFile(PChar(Dir + '*.*'), FindData);
if FindHandle=INVALID_HANDLE_VALUE then exit;
repeat if (PChar(@FindData.cFileName[0]) <> '.')and(PChar(@FindData.cFileName[0]) <> '..') then
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)<>0 then begin
if _prop_Include > 0 then OutFiles(Dir,FindData.cFileName);
if _prop_SubDir = 0 then Search(Dir + FindData.cFileName + '\'); // Вот здесь и не нравится !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
end else if StrCmp(LowerCase(FindData.cFileName),FWorkExt) then begin
inc(FCount);
if _prop_Include <> 1 then OutFiles(Dir,FindData.cFileName);
end else _hi_OnEvent(_event_onOtherFiles,Dir + FindData.cFileName);
until FStop or not FindNextFile(FindHandle, FindData);
FindClose(FindHandle);
end;
Но все равно - есть предложение подстраховаться (см. аттач)