Что нового

Как распаковать архив на диск C

joker2d

Новичок
Сообщения
182
Репутация
0
пишу
Код:
_Zip_UnzipAll("C:\test.zip", "C:\")

получаю ошибку
6- не удалось открыть каталог назначения, если написать
Код:
_Zip_UnzipAll("C:\test.zip", "C:")
ошибка 3 - Путь к ZIP-файлу не является полный путь
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
"_Zip_UnzipAll" в корень диска не распаковывает.Распакуйте при помощи 7zip
Код:
$PathFile='C:\Test.zip'
$TempDir='C:\'
$err = RunWait('"c:\Program Files\7-Zip\7z.exe" x "' & $PathFile & '" -o"' & $TempDir & '" -aoa')
 
Автор
J

joker2d

Новичок
Сообщения
182
Репутация
0
ra4o сказал(а):
"_Zip_UnzipAll" в корень диска не распаковывает.Распакуйте при помощи 7zip
Код:
$PathFile='C:\Test.zip'
$TempDir='C:\'
$err = RunWait('"c:\Program Files\7-Zip\7z.exe" x "' & $PathFile & '" -o"' & $TempDir & '" -aoa')
А стандартным распаковщиком винды для zip файлов как сделать? не хочется еще что то ставить
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Тогда есть другая UDF , в которой это возможно (название функции не изменилось)
 

Вложения

  • Zip.au3
    21.9 КБ · Просмотры: 13

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
joker2d
стандартным распаковщиком винды для zip файлов
Код:
$ZipFullName = @ScriptDir & "\test.zip"
$ExtractPath = "C:\"

$oShell = ObjCreate("Shell.Application")
$oPath = $oShell.NameSpace($ExtractPath)
$oZip = $oShell.NameSpace($ZipFullName)
$oPath.CopyHere($oZip.Items, 16)
 
A

Alofa

Гость
joker2d
Или откройте саму библиотеку "_Zip.au3" (... \AutoIt3\Include\)
Найдите там:
Код:
Func _Zip_PathStripSlash($sString)
	Return StringRegExpReplace($sString, "(^\\+|\\+$)", "")
EndFunc   ;==>_Zip_PathStripSlash

... замените на:
Код:
Func _Zip_PathStripSlash($sString)
	;Return StringRegExpReplace($sString, "(^\\+|\\+$)", "")
	Return StringRegExpReplace($sString, "(^\\+|(?<=.[^:])\\+$)", "")
EndFunc   ;==>_Zip_PathStripSlash

и будет вам счастье.
Только учтите библиотека имеет атрибут "Только чтение" (не забудьте его поставить обратно).
 
Верх