Показать сообщение отдельно
  #9  
Старый 22.08.2012, 09:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Обращает на себя внимание вот этот кусок кода:
Код:
    if FindFirst(SourceFile + '\*.*', faanyfile, FindFile) = 0 then
    begin
      repeat
        if FindFile.Attr <> faDirectory then
          if not MoveToArc(SourceFile + '\' + FindFile.Name, DestDir + '\' + ExtractFileName(SourceFile), False) then
          begin
            Result := False;
            Exit;
          end;
      until FindNext(FindFile) <> 0;
      FindClose(FindFile);
      if not RemoveDir(PWideChar(SourceFile)) then
        Result := False;
    end;
Если функция MoveToArc возвращает False, то сразу же происходит выход из процедуры и функция FindClose (которая закрывает поисковой хендл) не выполнится и хэндл будет висеть незакрытым пока не закроем всё приложение и винда сама не освободит все хэндлы захваченые им.
Ответить с цитированием