Функция _Zip_AddItem

         Описание функции


_Zip_AddItem

Добавляет файл или папку в ZIP-архив.

#Include <_Zip.au3>
_Zip_AddItem($sZipFile, $sItem[, $sDestDir = ""[, $iFlag = 21]])

Параметры

$sZipFile Полный путь к ZIP-файлу
$sItem Полный путь к добавляемому элементу
$sDestDir [необязательный] Подкаталог назначения в архиве, в котором следует разместить элемент, например "some\sub\dir"
$iFlag [необязательный] Флаги копирования файлов (по умолчанию = 1 + 4 + 16)
1 - Перезаписать файл в архиве, если он существует
4 - Без полосы прогресса
8 - Переименовывает, если файл с таким именем уже существует
16 - Отвечает "Да для всех" для любого отображаемого диалогового окна
64 - Сохраняет очередь отмен, если возможно
256 - Отображает окно с полосой прогресса, но не показывает имена файлов
512 - Не подтверждать создание нового каталога, если для выполнения операции это потребуется
1024 - Не отображать пользовательский интерфейс, если произошла ошибка
2048 - Версия 4.71. Не копировать атрибуты безопасности файла
4096 - Действует только в локальном каталоге, не действует рекурсивно в подкаталогах
8192 - Версия 5.0. Не копировать подключенные файлы как группа, копировать только указанные файлы

Возвращаемое значение

Успех:Возвращает 1
Ошибка:Возвращает 0 и устанавливает @error
@error:1 - Отсутствует zipfldr.dll
2 - Библиотека не установлена
3 - Путь к ZIP-файлу $sZipFile не является полный путь
4 - Добавляемый элемент $sItem не является полный путь
5 - Добавляемый элемент не существует
6 - Подкаталог назначения в архиве не может быть полный путь
7 - Файл $sZipFile не является с расширением ZIP
8 - элемента назначения существует и папку (см. примечание)
9 - Элемент назначения существует, а флаг перезаписи не установлен
10 - Элемент назначения существует, а перезаписать не удалось
11 - Не удалось создать внутреннюю структуру каталогов

Примечания

Папки назначения не могут быть перезаписаны или объединены. Они должны быть предварительно удалены вручную.

См. также

_Zip_DeleteItem

Пример

; wraithdu
; http://www.autoitscript.com/forum/topic/116565-zip-udf-zipfldrdll-library/
#include <_Zip.au3>

$sZipFile = FileOpenDialog("Выберите архив", "", "Архивы ZIP (*.zip)", 3)
If @error Then Exit

$sAddFolder = FileSelectFolder("Выберите добавляемый каталог", "")
If @error Then Exit

$sAddFile = FileOpenDialog("Выберите добавляемый файл", "", "Все файлы (*.*)")
If @error Then Exit

MsgBox(0, 'Добавляемые элементы', $sAddFolder & @LF & $sAddFile & @LF & @LF & 'В архив: ' & $sZipFile)

$iRes = _Zip_AddItem($sZipFile, $sAddFolder)
If @error Then
    MsgBox(64, "_Zip_AddItem", "Ошибка @error = " & @error)
Else
    MsgBox(64, "_Zip_AddItem", "Каталог добавлен в архив: " & $iRes)
EndIf

$iRes = _Zip_AddItem($sZipFile, $sAddFile)
If @error Then
    MsgBox(64, "_Zip_AddItem", "Ошибка @error = " & @error)
Else
    MsgBox(64, "_Zip_AddItem", "Файл добавлен в архив: " & $iRes)
EndIf