Вопросы и ответы (FAQ)

Вопросы пользователей

Могу ли я использовать 7-Zip в коммерческих организациях?

Да, 7-Zip это бесплатная программа. Вы можете использовать ее на любом компьютере. Вы не должны регистрировать или платить за 7-Zip.

Почему операции добавить, удалить или обновить не работают для некоторых архивов?

Текущая версия 7-Zip не может исполнять некоторые файлы .7z, созданные с включенной опцией "solid". Вы можете отключить режим "solid" с помощью -ms=off в командной строке.

Что насчет поддержки архивов ACE?

Поддержка архивов ACE могла бы осуществляться в 7-zip, если бы его исходный код был открытым а лицензия позволяла бы это. Библиотека Unace.dll от авторов программы ACE не совместима с интерфейсом плагинов 7-zip (Unace.dll работает с файлами, но 7-zip позволяет плагинам работать только с абстрактными потоками). Поэтому 7-zip не может использовать Unace.dll без сложной обертки.

Почему версия командной строки не добавляет файлы без расширений к архиву?

Возможно вы используете шаблон *.*. 7-Zip не использует парсер маскировки операционной системы, и поэтому принимает шаблон *.* как файл имеющий расширение. Для обработки всех файлов вы должны использовать шаблон * или отменить шаблоны вообще.

Почему 7-Zip не открывает некоторые архивы ZIP?

В 99% случаев это означает, что архив содержит неправильные заглавия. Некоторые другие программы для работы с архивами ZIP умеют открывать архивы с неправильными заглавиями, если они игнорируют эти ошибки.

Если вы столкнулись с такими архивами, пожалуйста не пытайтесь сообщить об этом разработчикам 7-Zip. Вместо этого пробуйте найти программу, которая использовалась для создания этого архива и проинформируйте ее разработчиков о том что их программное обеспечение не совместимое с форматом zip.

Существует также несколько типов архивов ZIP, кодированные неподдерживаемыми 7-Zip методами. Среди них: PPMd (WinZip), WAVPack (WinZip), pkAES (PkZip).

Почему 7-Zip не поддерживает большие словари в Windows 32-bit?

Windows 32-bit выделяет только 2 GB виртуальной памяти для одной программы. Кроме того блок размером 2 GB может быть фрагментирован (например, с помощью некоторых файлов DLL), поэтому 7-Zip не может выделить один большой непрерывный блок виртуального пространства. Таких ограничений нет в Windows 64-bit. Поэтому вы можете использовать любой словарь в Windows x64, если это позволяет его физический RAM.

Как установить 7-Zip в тихом режиме?

Используйте параметр "/S" для тихой установки и параметр "/D=dir" для выбора директории установки. Эти опции зависят от регистра. 7-Zip использует инсталлятор NSIS от Nullsoft.

Вопросы разработчиков

Почему при компилировании в Visual C++ 6.0 архиватора 7-Zip или LZMA SDK возникает ошибка?

Для компилирования исходников вам нужно использовать Visual C++ 6.0 или выше. Некоторые файлы также требуют новую платформу SDK от microsoft.com:

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm или http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

Если вы используете MSVC, установите директорию SDK вверху списка директорий "Include files" и "Library files". Это может быть найдено под "Tools / Options / Directories".

Последние версии платформы SDK не совместимы с MSVC6. Поэтому вы должны использовать Windows Server 2003 PSDK (февраль 2003) с MSVC6.

Могу ли я использовать файлы EXE или DLL архиватора 7-Zip в коммерческих приложениях?

Да, но вы должны указать в вашей документации то, что вы (1) используете часть программы 7-Zip, (2) что 7-Zip находится под лицензией GNU LGPL и (3) вы должны поставить ссылку на сайт www.7-zip.org, где можно найти исходный код.

Как мне добавить поддержку архивов 7z к моим приложениям?

Единственный путь - использовать 7za.dll (можно скачать на sf.net). 7za.dll работает с интерфейсом COM. При этом он не использует стандартный интерфейс COM для создания обьектов. Вы можете найти маленький пример в исходном коде. Полным примером может служить сам архиватор 7-Zip, так как он использует этот dll. Также 7za.dll используют архиваторы WinRAR, PowerArchiver и другие.

Еще один путь - вызвать версию для командной строки 7za.exe.

Могу ли я использовать исходный код 7-Zip в коммерческих программах?

Так как 7-Zip находиться под лицензией GNU LGPL вы должны следовать правилам этой лицензии. В основном это означает что любой код содержащий код LGPL должен быть под этой лицензией. Например, вы можете изменить код 7-Zip, или использовать часть кода 7-Zip и компилировать это в DLL. При этом исходный код этого DLL (в том числе с вашими модификациями / добавлениями / обертками) должен быть под лицензией LGPL или GPL. Любой другой код в вашей программе может быть лицензирован как вам будет угодно. Эта схема позволяет пользователям и разработчикам изменять код LGPL и переделывать DLL. Больше о лицензировании бесплатных программ можно узнать здесь - http://www.gnu.org/. Также вы можете узнать больше о LZMA SDK, который доступен в более либеральной лицензии.


Авторские права (C) 2008 Игорь Павлов. Перевод Блог о программах. Поддержка Программы.com.ua.