- Сообщения
- 8,671
- Репутация
- 2,481
Я 2 часа промучался с этой функцией, и так пробовал, и так пробовал, но результат остался непонятным :
Этот пример создаёт папки C:\src и C:\dst\src, далее пытается переместить папку c:\src в папку c:\dst.
В справке написано, что если путь назначения существует, и третьий параметр равен 1 (перезапись существующих файлов), то исходная папка будет помещаться во внутрь папки назначения...
Но чёрт побери :Censored:,откуда там появляется ещё одна подпапка с таким же названием почему папка src помещается в подпапку src когда я указал на dst?! :wall_brake:
P.S
Проблему обхожу таким образом:
Код:
$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:,
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