Функция _Zip_UnzipAll

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


_Zip_UnzipAll

Извлекает все файлы, содержащиеся в ZIP-архиве

#Include <_Zip.au3>
_Zip_UnzipAll($sZipFile, $sDestPath[, $iFlag = 20])

Параметры

$sZipFile Полный путь к ZIP-файлу
$sDestPath Полный путь к папке назначения
$iFlag [необязательный] Флаги копирования файлов (по умолчанию = 4 + 16)
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 - Не удалось создать каталог назначения (при необходимости)
6 - Не удалось открыть каталог назначения
7 - Не удалось извлечь файл(ы)

Примечания

Перезапись файлов назначения контролируется исключительно флагами копирования файлов (то есть $iFlag = 1 не действительный).

Пример

; 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_UnzipAll($sZipFile, $sFolder)
If @error Then
    MsgBox(64, "_Zip_UnzipAll", "Ошибка @error = " & @error)
Else
    MsgBox(64, "_Zip_UnzipAll", "Успех: " & $iRes)
EndIf