|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Своевременное удаление папки
Здравствуйте, народ.
Столкнулся с такой проблемой. В ходе работы проги происходит перемещение папки в другое место (копирование, затем удаление). Использую стандартные функции SysUtils. После выполнения процедуры перемещения, все успешно перемещается, ошибок нигде не возникает. Но есть одно НО. Остаётся пустая папка, доступ к которой отсутствует. После закрытия программы, папка пропадает. А нужно, чтобы пропадала сразу. Может кто сталкивался? Где собака зарыта? |
#2
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Цитата:
|
#4
|
|||
|
|||
Цитата:
Как узнать - чего закрыть нужно? |
#5
|
||||
|
||||
Цитата:
|
#6
|
|||
|
|||
Цитата:
Мне вот это не совсем понятно. Точнее совсем не понятно. Я с этим раньше вообще не сталкивался. |
#7
|
||||
|
||||
ты хоть фрагмент кода показал!!! было бы проще искать ошибку
уволен в запас!!! |
#8
|
|||
|
|||
Цитата:
Код:
function MoveToArc(SourceFile, DestDir: string; Directory: boolean): boolean; var FindFile: TSearchRec; begin Result := True; // Создаем папку DestDir if not CreateDir(PWideChar(DestDir)) then if GetLastError <> 183 then begin Result := False; Exit; end; if Directory then begin // Создаем директорию SourceFile в папке DestDir if not CreateDir(PWideChar(DestDir + '\' + ExtractFileName(SourceFile))) then if GetLastError <> 183 then begin Result := False; Exit; end; 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; end else begin if CopyFile(PWideChar(SourceFile), PWideChar(DestDir + '\' + ExtractFileName(SourceFile)), True) then begin if not DeleteFile(SourceFile) then Result := False; end else Result := False; end; end; |