Показать сообщение отдельно
  #12  
Старый 22.08.2012, 10:30
Danielz Danielz вне форума
Прохожий
 
Регистрация: 21.08.2012
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Обращает на себя внимание вот этот кусок кода:
Код:
    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 (которая закрывает поисковой хендл) не выполнится и хэндл будет висеть незакрытым пока не закроем всё приложение и винда сама не освободит все хэндлы захваченые им.

Согласен. Упустил. Но дело не в этом.
Ответить с цитированием