Допустимые значения: |
basic enhanced/nopassword enhanced full |
Значение по умолчанию: |
basic |
Определяет метод извлечения архива, используемый флагом extractarchive в секции [Files] и функциями ExtractArchive и CreateExtractionPage.
basic использует исходную версию декодера "7z ANSI-C Decoder" из LZMA SDK (автор – Игорь Павлов) с небольшими доработками: улучшена поддержка Unicode, оптимизированы сообщения об ошибках и добавлен вывод требований к памяти. Поддерживает только архивы .7z, не защищённые паролем.
enhanced/nopassword использует внешнюю библиотеку 7zxr.dll, собранную на базе исходного кода 7-Zip (автор – Игорь Павлов) с минимальными изменениями: добавлена цифровая подпись и файл переименован в is7zxr.dll. По сравнению с методом basic, предлагает более эффективное использование памяти при работе с архивами, содержащими крупные файлы, но приводит к увеличению размера установочного пакета. Важно отметить, что данный метод поддерживает исключительно архивы .7z без парольной защиты.
enhanced использует библиотеку 7zxa.dll вместо 7zxr.dll. Файл библиотеки собран заново, подписан цифровым сертификатом и переименован в is7zxa.dll. Поддерживает только архивы .7z, включая защищённые паролем.
full вместо библиотеки 7zxa.dll использует 7z.dll. Данная библиотека была перекомпилирована, подписана и переименована в is7z.dll. Поддерживает наиболее популярные форматы архивов (такие как .7z, .zip, .rar и другие), но не все по сравнению с оригинальной 7z.dll — это было сделано для уменьшения её размера. Кроме того, реализована поддержка многотомных архивов.
В следующей таблице приведены различия между этими методами.
Требования к памяти | Архивы под паролем | Увеличение инсталлятора | Формат архивов | |
basic (по умолчанию) | Высокие для больших файлов* | Нет | 0 Кб | .7z |
enhanced/nopassword | Нормальные | Нет | 100 Кб | .7z |
enhanced | Нормальные | Да | 123 Кб | .7z |
full | Нормальные | Да | 458 Кб | .7z, .zip, .gz, .bz2, .xz, .tar, .rar, .iso, .msi, .cab, .rpm, .vhd, .vhdx, .vdi, .vmdk, .wim, .dmg, .001 |
* = При извлечении файла всегда будет выделен достаточный объём памяти, чтобы вместить весь файл, независимо от размера блока. Например, для извлечения файла размером 1 ГБ с использованием метода basic потребуется не менее 1 ГБ оперативной памяти. Однако для 7z-архивов с крупными файлами рекомендуется использовать альтернативный метод: в таком случае потребление памяти зависит исключительно от размера словаря.
Все методы автоматически перезаписывают существующие в целевой папке файлы (даже с атрибутом "только для чтения") без предупреждения пользователя.
Все методы восстанавливают из архива следующие свойства файлов, если они доступны: время создания, время последнего изменения и атрибуты.
При использовании метода full для извлечения содержимого архива, например archive.tar.gz, на выходе будет получен сам файл архива (например, archive.tar), а не отдельные файлы, которые в нём содержатся.
Метод basic имеет следующие ограничения, как указано Игорем Павловым в комментариях к LZMA SDK: