Показать сообщение отдельно
  #1  
Старый 03.05.2017, 20:03
Eldar1991 Eldar1991 вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 21
Версия Delphi: delphi7
Репутация: 10
По умолчанию Ошибка пути при переносе файлов

Здравствуйте!
Такой вопрос:
Использую данную функцию для перемещения каталогов с файлами:
Код:
function MoveDir(fromDir, toDir: String): Boolean;   // функция перемещения файлов
var
fos: TSHFileOpStruct;
toDir2: string;
begin
toDir2 :=toDir;
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_MOVE;
//fFlags := FOF_FILESONLY;
fFlags:= FOF_SIMPLEPROGRESS;
fflags:= fflags or FOF_NOCONFIRMATION;
fflags:= fflags or FOF_SILENT;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir2);
end;
Result := (0 = ShFileOperation(fos));
end;
Программа в цикле обращается к папке и переносит оттуда нужные каталоги. В штатном режиме все работает хорошо, но часто возникает ситуация, что в момент переноса каталога в него происходит "запись" новых файлов из другого источника. В таком случае конечный путь перемещения дублируется на одну папку. Иными словами при переносе в директорию C:\Folder\, первый переносимый файл каталога остается в нем, а последующие уже создаются в C:\Folder\Folder\. Как грамотно исправить эту проблему?
Ответить с цитированием