gora

|
Posted: Fri Mar 25, 2011 10:05 Post subject: |
|
|
Total7zip
Спасибо, что не бросили идею обновления SFX на базе модифицированных модулей.
Ваши выводы отчасти верны, но не совсем. Попробую объяснить возникающие проблемы...
1 Модифицированных модулей существует несколько типов: Quote: | Для каждого метода сжатия (LZMA, LZMA2, Deflate, PPMd) имеется отдельный модуль, а так же модуль, способный работать с любым из этих методов. Модули существуют в двух вариантах 32-х и 64-х битные. ...
При использовании Deflate и PPMd модулей, исходный 7z архив необходимо сжимать с ключом hc=off архиватора 7-Zip (описание ключа см. в справке архиватора 7-Zip).
|
2 Получить 7z архив с методом сжатия Deflate через настройки GUI вряд ли получится (во всяком случае я их создаю из ком. строки).
3 Если метод сжатия при обновлении не будет соответствовать типу модуля в SFX, то после обновления SFX не будет работать.
4 Т.к., исходный SFX был работоспособным, и плагин не меняет модуль (и это правильно), то при обновлении SFX метод сжатия менять нельзя.
5 Какой модуль и какой метод сжатия использован, в имеющемся у пользователя SFX, неизвестно. Перекладывать на него получение этих сведений и ручном введении нужных параметров при обновлении SFX - идея неверная. Он не обязан это знать, да и не будет возится так с каждым SFX. В результате он может получить неработоспособный SFX, после такого обновления, и винить в этом будет плагин. И отчасти он будет прав.
Резюме: плагин должен производить обновление SFX без помощи пользователя, ибо его помощь в этом может оказаться деструктивной.
Мое видение решения проблемы:
1 Плагин сам определяет используемые в SFX методы сжатия (в одном архиве методов может быть не один, а несколько!!!).
2 Если в SFX использован только Deflate или PPMd метод, то плагин принудительно используется ключ hc=off (см. цитату выше). Здесь есть некоторые тонкости и этот ключ не всегда обязателен даже для указанных методов сжатия, но ими можно пренебречь.
3 При обновлении SFX, плагин использует, определенный в п.п.1, 2 метод сжатия, принудительно устанавливает максимальные параметры для этого конкретного метода сжатия, определяя их за пользователя. (Доступ пользователя к настройкам в этом случае крайне нежелателен. ИМХО)
4 Таким образом обновление SFX происходит без вмешательства пользователя. Это разгружает его от необходимости знать разные тонкости, а также защищает получаемый обновленный SFX от его неквалифицированных действий. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|