Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2012-08-28 11:01:20 ЛС | профиль | цитата
Не нравится мне сия рекурсия (реальных ошибок пока не искал)


#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;

Но все равно - есть предложение подстраховаться (см. аттач)
карма: 9

0