_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