Что нового

DirMove - непредвиденное поведение

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,463
Я 2 часа промучался с этой функцией, и так пробовал, и так пробовал, но результат остался непонятным :scratch::

Код:
$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
Проблему обхожу таким образом:
Код:
_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
 

c-n1x

Новичок
Сообщения
26
Репутация
1
Действительно DirMove работает глючно. Но зачем изобретать велосипед?

Держи :
Код:
DirCreate(@ScriptDir & "\src")
DirCreate(@ScriptDir & "\dst\src")
DirCopy(@ScriptDir & "\src", @ScriptDir & "\dst", 1)
DirRemove(@ScriptDir & "\src")
 

c-n1x

Новичок
Сообщения
26
Репутация
1
CreatoR

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,463
c-n1x [?]
Есть разница, пройти до магазина 10 метров или километр ?
Какой километр?! Функция выполняет тоже самое что ты написал, я ещё раз спрашиваю, где разница (конкретно)?
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,463
c-n1x [?]
А толку от этого. На практике это нужно применять в виде функций, а где проверка на ошибки, а где подстановка переменных...

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

asdf8

Скриптер
Сообщения
564
Репутация
152
На практике это нужно применять в виде функций, а где проверка на ошибки, а где подстановка переменных...

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