Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #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\. Как грамотно исправить эту проблему?
Ответить с цитированием
 



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram