procedure Extract7ZipArchive(const ArchiveFileName, DestDir: String; const FullPaths: Boolean; const OnExtractionProgress: TOnExtractionProgress);
Выполняет распаковку указанного архива 7-Zip в заданный каталог с использованием или без использования имён путей.
Зашифрованные архивы не поддерживаются.
В случае возникновения ошибки будет вызвано исключение.
Используйте значение OnExtractionProgress для получения информации о ходе выполнения распаковки, в противном случае укажите nil.
Класс TOnExtractionProgress представлен следующей функцией:
TOnExtractionProgress = function(const ArchiveName, FileName: String; const Progress, ProgressMax: Int64): Boolean;
Возвращает значение True, что позволяет продолжить распаковку, иначе - False.
Extract7ZipArchive использует встроенную версию "7z ANSI-C Decoder" из библиотеки LZMA SDK (автор Igor Pavlov) как есть, за исключением улучшенной поддержки кодировки Unicode, сообщений об ошибках и вывода к требованиям к памяти.
Все выходные данные декодера записываются в журнал, если он включен, включая сообщения об ошибках, за исключением пустых строк.
Декодер имеет следующие ограничения, описанные автором в библиотеке LZMA SDK:
В дополнение к комментарию об использовании оперативной памяти: при извлечении файла всегда будет выделен достаточный объём памяти, чтобы вместить весь файл, независимо от размера блока. Например, для извлечения файла размером 1 ГБ с помощью Extract7ZipArchive требуется не менее 1 ГБ оперативной памяти. По этой причине для извлечения больших файлов рассмотрите возможность использовать другое решение, к примеру, встраивания в программу установки файлов архиватора 7-Zip, который не имеет такого ограничения.
Кроме того, как отмечено в документации:
CreateExtractionPage
CreateDownloadPage
DownloadTemporaryFile
ExtractTemporaryFile