Автор Тема: DirMove - непредвиденное поведение  (Прочитано 5366 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Я 2 часа промучался с этой функцией, и так пробовал, и так пробовал, но результат остался непонятным :think::

Код: AutoIt [Выделить]
$sPath = "c:"

DirCreate($sPath & "\src")
DirCreate($sPath & "\dst\src")

DirMove($sPath & "\src", $sPath & "\dst", 1)


Этот пример создаёт папки C:\src и C:\dst\src, далее пытается переместить папку c:\src в папку c:\dst.
В справке написано, что если путь назначения существует, и третьий параметр равен 1 (перезапись существующих файлов), то исходная папка будет помещаться во внутрь папки назначения...
Но чёрт побери :Censored:, откуда там появляется ещё одна подпапка с таким же названием почему папка src помещается в подпапку src когда я указал на dst?! :wall_brake:

P.S
Проблему обхожу таким образом:
Код: AutoIt [Выделить]
_DirMoveEx($sPath & "\src", $sPath & "\dst", 1)

Func _DirMoveEx($sSrcDir, $sDstDir, $iFlag = 0)
    If $iFlag = 0 Then
        Return DirMove($sSrcDir, $sDstDir, $iFlag)
    EndIf
   
    Local $sSrcDirName = StringRegExpReplace($sSrcDir, "^.*\\", "")
    Local $iRet = DirCopy($sSrcDir, $sDstDir & "\" & $sSrcDirName, 1)
   
    If $iRet Then
        DirRemove($sSrcDir, 1)
    EndIf
   
    Return $iRet
EndFunc

« Последнее редактирование: Июнь 14, 2011, 14:21:20 от CreatoR »


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt

DirMove - непредвиденное поведение
« Отправлен: Июнь 14, 2011, 07:01:55 »

Оффлайн dwerf [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 478
  • Репутация: 218
  • Пол: Мужской
  • Использует ArchLinux
    • Награды
Re: DirMove - непредвиденное поведение
« Ответ #1, Отправлен: Июнь 14, 2011, 11:35:10 »
Цитировать
Remarks

If the destination already exists and the overwrite flag is specified then the source directory will be moved inside the destination.

Смысла тоже не понял.
00110110001000001101000011010011001

Оффлайн c-n1x [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 1
  • Пол: Мужской
    • c-n1x.pdj.ru
    • Награды
Re: DirMove - непредвиденное поведение
« Ответ #2, Отправлен: Июль 11, 2011, 09:48:20 »
Действительно DirMove работает глючно. Но зачем изобретать велосипед?

Держи :
Код: AutoIt [Выделить]
DirCreate(@ScriptDir & "\src")
DirCreate(@ScriptDir & "\dst\src")
DirCopy(@ScriptDir & "\src", @ScriptDir & "\dst", 1)
DirRemove(@ScriptDir & "\src")


Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: DirMove - непредвиденное поведение
« Ответ #3, Отправлен: Июль 11, 2011, 11:05:11 »
c-n1x  [?]
Цитировать
зачем изобретать велосипед?
Держи :
И чем оно отличается от того что я сделал в _DirMoveEx?

Русское сообщество AutoIt

Re: DirMove - непредвиденное поведение
« Ответ #3 Отправлен: Июль 11, 2011, 11:05:11 »

Оффлайн c-n1x [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 1
  • Пол: Мужской
    • c-n1x.pdj.ru
    • Награды
Re: DirMove - непредвиденное поведение
« Ответ #4, Отправлен: Июль 12, 2011, 01:51:42 »
CreatoR

Есть разница, пройти до магазина 10 метров или километр ?

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: DirMove - непредвиденное поведение
« Ответ #5, Отправлен: Июль 12, 2011, 04:02:06 »
c-n1x  [?]
Цитировать
Есть разница, пройти до магазина 10 метров или километр ?
Какой километр?! Функция выполняет тоже самое что ты написал, я ещё раз спрашиваю, где разница (конкретно)?

Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: DirMove - непредвиденное поведение
« Ответ #6, Отправлен: Июль 12, 2011, 20:17:17 »
CreatoR
Цитировать
(конкретно)

Разница лишь в размере кода ;) Думаю к этому и склоняется с-n1x :)

Оффлайн c-n1x [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 1
  • Пол: Мужской
    • c-n1x.pdj.ru
    • Награды
Re: DirMove - непредвиденное поведение
« Ответ #7, Отправлен: Июль 13, 2011, 02:42:14 »
Точно

Русское сообщество AutoIt

Re: DirMove - непредвиденное поведение
« Ответ #7 Отправлен: Июль 13, 2011, 02:42:14 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: DirMove - непредвиденное поведение
« Ответ #8, Отправлен: Июль 13, 2011, 14:23:30 »
c-n1x  [?]
Цитировать
Точно
А толку от этого. На практике это нужно применять в виде функций, а где проверка на ошибки, а где подстановка переменных...

Да и вообще, при чём здесь велосипед? >:(

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560
  • Репутация: 151
    • Награды
Re: DirMove - непредвиденное поведение
« Ответ #9, Отправлен: Июль 13, 2011, 15:13:41 »
Цитировать
На практике это нужно применять в виде функций, а где проверка на ошибки, а где подстановка переменных...

Точно, если не приучать себя к этому, то потом, в скриптах длиннее десять строчек замучаешься искать ошибки.
Как раз получится
Цитировать
пройти до магазина  километр
, и даже все десять.

Русское сообщество AutoIt

Re: DirMove - непредвиденное поведение
« Ответ #9 Отправлен: Июль 13, 2011, 15:13:41 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2495 Просмотров
Последний ответ Июнь 13, 2010, 12:43:47
от Zalman1980
2 Ответов
3001 Просмотров
Последний ответ Август 09, 2010, 19:00:56
от Kalisnik
37 Ответов
17091 Просмотров
Последний ответ Февраль 20, 2014, 22:45:43
от bugmenot
3 Ответов
3360 Просмотров
Последний ответ Июль 03, 2011, 19:34:54
от Garrett
5 Ответов
3894 Просмотров
Последний ответ Февраль 08, 2012, 23:36:22
от Afonichev
0 Ответов
2070 Просмотров
Последний ответ Февраль 10, 2012, 20:47:14
от white[43]
0 Ответов
1536 Просмотров
Последний ответ Апрель 11, 2012, 06:51:44
от ZaEzzz
3 Ответов
3278 Просмотров
Последний ответ Ноябрь 26, 2012, 13:34:36
от joiner
3 Ответов
2129 Просмотров
Последний ответ Май 23, 2013, 16:51:11
от CreatoR
2 Ответов
1682 Просмотров
Последний ответ Сентябрь 24, 2013, 20:13:58
от blacklis