Что нового

[Автоматизация] _7ZipAdd установка пароля на архив

kristow13

Новичок
Сообщения
76
Репутация
0
В документации для библиотеки <7Zip.au3> на странице http://autoit-script.ru/autoit3_docs/userfunctions/_7ZipAdd.htm
Написано что можно прописать параметр установки пароля на архив...
Примеры из документации работают.

Когда пробую написать вот так, то архив не формируется и выдает ошибку.
Код:
If _7ZipStartup() Then ; To test dll opening (can be omitted for some functions)
	$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,0,0,'1234')
	If @error Then
		MsgBox(16, "_7ZipAdd", "Error occurred")
	Else
		MsgBox(64, "_7ZipAdd", "Archive created successfully" & @LF & $retResult)
	EndIf
Else
	MsgBox(16, "_7ZipAdd", "Enable to start dll")
EndIf

На форуме не нашел вопросов о использовании пароля для архива.
Подскажите как это сделать?
Ну или посоветуйте другую библиотеку для создания архива.

P.S. Пробовал делать архив с паролем используя <uZip.au3>, но как я понял библиотека работает только с файлами, указать просто папку на выполнение архивации не получилось...
 

Prog

Продвинутый
Сообщения
537
Репутация
65
kristow13 [?]
Пробовал делать архив с паролем используя <uZip.au3>, но как я понял библиотека работает только с файлами, указать просто папку на выполнение архивации не получилось
Просканировать папку и добавить все файлы в архив, не вариант? Если бы в библиотеке была функция архивирования папки, она бы работала точно также.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
А если так
Код:
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,'','','1234')
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Prog сказал(а):
kristow13 [?]
Пробовал делать архив с паролем используя <uZip.au3>, но как я понял библиотека работает только с файлами, указать просто папку на выполнение архивации не получилось
Просканировать папку и добавить все файлы в архив, не вариант? Если бы в библиотеке была функция архивирования папки, она бы работала точно также.
Я про это думал... так ведь при сканировании я получаю список файлов для архивации.... А как быть с подпапками? И как при таком варианте сохранить всю структуру файлов и папок?

edyapd сказал(а):
А если так
Код:
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,'','','1234')
Да так пробовал, не работает.
Проблема именно в задании пароля...
Так как если я делаю так:
Код:
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,0,0)

то скрипт работает...
А если пробую прописать пароль, то ошибка:
Код:
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,0,0,'1234')
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,0,0,1234)
$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,5,1,0,0,"1234")
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
стандартный пример из справки
Код:
; http://www.autoitscript.com/forum/topic/85094-7zip/
#include <7Zip.au3>

; Пример 1
$ArcFile = FileSaveDialog("Создать новый архив", "", "Архивы (*.7z;*.zip;*.gzip;*.bzip2;*.tar)")
If @error Then Exit

$FileName = FileSelectFolder("Выберите каталог", "")
If @error Then Exit

$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,0,1,'','','1234')
If @error Then
    MsgBox(64, "_7ZipAdd", "Ошибка")
Else
    MsgBox(64, "_7ZipAdd", "Архив создан успешно" & @LF & $retResult)
EndIf
пароль устанавливается


Добавлено:
Сообщение автоматически объединено:

7-zip32.dll должна быть в одной папке со скриптом
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
joiner сказал(а):
стандартный пример из справки
Код:
; http://www.autoitscript.com/forum/topic/85094-7zip/
#include <7Zip.au3>

; Пример 1
$ArcFile = FileSaveDialog("Создать новый архив", "", "Архивы (*.7z;*.zip;*.gzip;*.bzip2;*.tar)")
If @error Then Exit

$FileName = FileSelectFolder("Выберите каталог", "")
If @error Then Exit

$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,0,1,'','','1234')
If @error Then
    MsgBox(64, "_7ZipAdd", "Ошибка")
Else
    MsgBox(64, "_7ZipAdd", "Архив создан успешно" & @LF & $retResult)
EndIf
пароль устанавливается


Добавлено:
Сообщение автоматически объединено:

7-zip32.dll должна быть в одной папке со скриптом



:scratch: странно, а у меня не работает... Выдает сообщение ошибка...
А подскажите какая у Вас версия библиотеки? :-[
У меня файл 7zip.au3 19.10.2012 и к нему два dll файла...
Если у Вас версия свежее, дайте ссылку пожалуйста, или прикрепите к сообщению...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
http://autoit-script.ru/index.php?topic=10070.0
там все есть в комплекте. версия dll 4.31.0.3
я использую другую версию 7Z UDF и dll (здесь)
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Скачал библиотеку посвежее, и создание архива с паролем заработал!
Спасибо!
 

Sinofriz

Новичок
Сообщения
2
Репутация
0
там все есть в комплекте. версия dll 4.31.0.3
я использую другую версию 7Z UDF и dll (здесь)
Файлы уже не доступны. Можете еще раз их залить? Очень нужно автоматизировать архивирование с паролем.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в архиве UDF, dll и часть русской справки, в которой есть раздел по работе с библиотекой
 

Вложения

  • UDF_7Z.7z
    957.1 КБ · Просмотры: 6

Sinofriz

Новичок
Сообщения
2
Репутация
0
Если:
Код:
#include <7ZipM.au3>

$ArcFile = 'd:\test\test.zip'
If @error Then Exit

$FileName = 'd:\test2\'
If @error Then Exit

$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,0,1,'','')
If @error Then
    MsgBox(64, "_7ZipAdd", "Ошибка")
Else
    MsgBox(64, "_7ZipAdd", "Архив создан успешно" & @LF & $retResult)
EndIf
То все хорошо.

Но если пытаюсь добавить пароль:
Код:
#include <7ZipM.au3>

$ArcFile = 'd:\test\test.zip'
If @error Then Exit

$FileName = 'd:\test2\'
If @error Then Exit

$retResult = _7ZipAdd(0, $ArcFile, $FileName,0,0,1,'','','123')
If @error Then
    MsgBox(64, "_7ZipAdd", "Ошибка")
Else
    MsgBox(64, "_7ZipAdd", "Архив создан успешно" & @LF & $retResult)
EndIf
То пишет что ошибка
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <7ZipM.au3>

$ArcFile = 'd:\test\test.7z'

$FileName = 'd:\test2\'

_7ZipStartup()
$retResult = _7ZipAdd(0, _ANSIToOEM($ArcFile), _ANSIToOEM($FileName), 0, 0, 1, '', '', '123')
If @error Then
    MsgBox(64, "_7ZipAdd", 'Ошибка')
Else
    MsgBox(64, "_7ZipAdd", "Архив создан успешно")
EndIf
_7ZipShutdown()
 
Верх