Что нового

_Zip_AddItem как указать путь

Maggot_515

Новичок
Сообщения
11
Репутация
0
AutoIt Version 3.3.14.2
SciTE-Lite Version 3.5.4
Задача: Есть исходный архив с обновлениями антивирусных баз (выбирается через диалоговое окно), со структурой папок в архиве: \AutoPatches
\bases
\index
Необходимо в папку index , поместить созданный архив.
Предварительно необходимо выбрать файл rules.dat (выбирается через диалоговое окно)
Файл version.txt создает программа и записывает туда текущую дату в заданном формате.
Далее два файла (rules.dat и version.txt) упаковываются в архив, имя задается в формате даты, меняется расширение архива с .zip на .upd

Вопрос: В последней части кода. Файл с расширением .upd создается, но не добавляться в папку \index. Если указать конкретно путь к фалу tempUPD.zip не переименовывая его, архив добавляется в папку index без проблем.

p.s Если что подскажите по коду , где можно было сделать проще. Не дублируя одни и те же команды.

Код:
Case $Button1

$date = @YEAR&@MON&@MDAY&@HOUR&".upd"
$sAddFile = FileOpenDialog('', '', 'rules.dat (rules.dat)')
$sZip = FileOpenDialog('', '', 'Zip files (ksc10*.zip)',3)
_FO_CreateFile(@ScriptDir & '\version.txt', @YEAR&@MON&@MDAY&@HOUR, 1)
$sItem = (@ScriptDir & '\version.txt')
$sZipFile = _Zip_Create("tempUPD.zip", 1)
_Zip_AddItem(@ScriptDir & "\tempUPD.zip", $sAddFile)
_Zip_AddItem(@ScriptDir & "\tempUPD.zip", $sItem)
FileDelete (@ScriptDir & '\version.txt')
$sZipp = "index"
FileMove (@ScriptDir & "\tempUPD.zip", $date, 1)
_Zip_AddItem($sZip, @ScriptDir & "*.upd", $sZipp)]
 
Автор
M

Maggot_515

Новичок
Сообщения
11
Репутация
0
Так добавляется:
Код:
_Zip_AddItem($sZip, @ScriptDir & "2017091718.upd", $sZipp)


Так нет:
Код:
_Zip_AddItem($sZip, @ScriptDir & "\*.upd", $sZipp)

Код:
_Zip_AddItem($sZip, @ScriptDir & "*.upd", $sZipp)


хотелось бы что то типа этого но тоже не работает:
Код:
_Zip_AddItem($sZip, @ScriptDir & $date, $sZipp)
 
Автор
M

Maggot_515

Новичок
Сообщения
11
Репутация
0
Спасибо большое, все работает !!! :laugh:
Остались вопросы:
Как понять что та или иная Функция не поддерживает, те или иные действия ? Методом проб и ошибок ?

"\" - какое назначение у это оператора в данном случае ?

p.s Если открыть документацию то "\" относится к математическим операторам и выполняет действие деление.

Самый главный вопрос где читать что бы познать тонкости ? В документации не нашел. Если плохо искал ткните в пункт.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
Maggot_515
Как понять что та или иная Функция не поддерживает
Откройте файл _Zip.au3. Там перед каждой функцией есть описание.

Если открыть документацию то "\" относится к математическим операторам и выполняет действие деление.
Вы ошибаетесь. Оператор деления - это "/". А обратный слэш - это символ разделения пути к файлу. Результат макроса @ScriptDir не содержит в конце символ "\", поэтому его нужно добавлять "вручную".

где читать что бы познать тонкости
Данная UDF не входит в комплект поставки AutoIt, поэтому её описания нет в официальной справке. Но есть в русской версии: Развитие русской справки
 
Верх