|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Ошибка пути при переносе файлов
Здравствуйте!
Такой вопрос: Использую данную функцию для перемещения каталогов с файлами: Код:
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; |
#2
|
||||
|
||||
Как не извращался, ситуацию повторить не удалось, папка успевает успешно "улететь" в нужную директорию до копирования в неё новых файлов, но возможно здесь не хватает принудительной установки текущей папки посредством SetCurrentDirectory
Код:
... ZeroMemory(@fos, SizeOf(fos)); SetCurrentDirectory(PChar(toDir2)); ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Спасибо большое Вам за ответ, да действительно ситуация немного нестандартная, я думал поставить что то типа directoryexist, но не знаю как правильно это оформить. как попробую тогда отпишусь.
|
#4
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Попробовал изменить адресацию и добился.... теперь и вовсе при повторном переносе если в конечной папке такое имя каталога есть он 100% создает в нем еще одну папку. реализовано вот так.
Код:
for i:=0 to memo2.lines.count-1 do if (memo2.Text<>'') and (combobox1.Text<>'') then begin try if checkbox8.Checked=false then MoveDir(combobox1.Text+memo2.Lines[i], ExtractFileDir(Application.ExeName)+'\tails\'+memo2.Lines[i]) else MoveDir(combobox1.Text+memo2.Lines[i], edit3.text+'\tails\'+memo2.Lines[i]); except end; |
#6
|
|||
|
|||
где то очевидная ошибка... помогите ее увидеть
|