![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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, но не знаю как правильно это оформить. как попробую тогда отпишусь.
|
|
#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
|
|||
|
|||
|
где то очевидная ошибка... помогите ее увидеть
|