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

Цитата:
Сообщение от Danielz
Согласен. Упустил. Но дело не в этом.
И всёже переделай этот кусок кода с использованием конструкции try...finally (как советует M.A.D.M.A.N.), для гарантированного освобождения хэндла.

В твоём случае это будет так:
Код:
if FindFirst(SourceFile + '\*.*', faanyfile, FindFile) = 0 then
begin
  try
    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;
  finally
    FindClose(FindFile);
  end;
  if not RemoveDir(PWideChar(SourceFile)) then
    Result := False;
end;

Если после этих изменений будет оставаться "пустая папка, доступ к которой отсутствует", значит ты не закрываешь хэндл ещё в другом месте (исходник которого ты не публиковал).
Ответить с цитированием