![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |