Функция _Zip_Unzip

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


_Zip_Unzip

Извлекает единственный элемент из ZIP-архива

#Include <_Zip.au3>
_Zip_Unzip($sZipFile, $sFileName, $sDestPath[, $iFlag = 21])

Параметры

$sZipFile Полный путь к ZIP-файлу
$sFileName Имя элемента в ZIP-архиве
$sDestPath Полный путь к папке назначения
$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 - Файл $sZipFile не является с расширением ZIP
5 - Элемент не найден в ZIP-архиве
6 - Не удалось создать каталог назначения (при необходимости)
7 - Не удалось открыть каталог назначения
8 - Не удалось удалить файл/папку назначения при флаге перезаписи
9 - Каталог назначения существует, а флаг перезаписи не установлен
10 - Не удалось извлечь файл

Примечания

Путь внутри архива $sFileName должен выглядеть так: 'some\dir\file.ext'. Не добавляйте к пути "\" справа или слева.
Если флаг перезаписи не установлен, а файл или папка назначения существует, то взаимодействие с пользователем при перезаписи определяется остальными флагами $iFlag.

Пример

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

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

$sFolder = FileSelectFolder("Выберите каталог назначения", "", 3)
If @error Then Exit

$iRes = _Zip_Unzip($sZipFile, 'file.txt', $sFolder)
If @error Then
    MsgBox(64, "_Zip_Unzip", "Ошибка @error = " & @error)
Else
    MsgBox(64, "_Zip_Unzip", "Успех: " & $iRes)
EndIf