arclite — работа с архивами на основе 7-Zip

Здесь можно обсудить ваш любимый плагин.
2useven10
Posts: 3762
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 » Sun 15 Aug, 2010 22:26

Тема для обсуждения arclite — нового альтернативного плагина архиватора 7-Zip для Far.
("Старый" плагин 7zipalt обсуждается в прежней теме.)

Внимание:
Начиная с билда 1762 плагин входит в комплект поставки юникодной версии FAR'а, заменяя собой Multiarc.
В arclite не реализованы некоторые функции, присутствовавшие в Multiarc, в частности упаковка в RAR.

Обсуждение: arclite вместо MultiArc в комплекте Far 2











Кодек LZHAM

Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec » Mon 23 Oct, 2017 22:00

Latest post of the previous page:

2useven10 wrote:
Mon 23 Oct, 2017 21:15
Для форматных плагинов SetCodecs вроде бы зовётся.
Не могу подтвердить.
2useven10 wrote:
Mon 23 Oct, 2017 21:15
Сейчас к сожалению много времени на это потратить не могу.
Я не настаиваю, просто сообщаю о найденном недочете.
2useven10 wrote:
Mon 23 Oct, 2017 21:15
распишете для чего всё это нужно
Написал по просьбе пользователя моего ПО поддержку формата lzip. Сделал это в виде плагина, совместимого с 7zip. Формат lzip основан на методе сжатия lzma. Поскольку код lzma уже есть в 7z.dll, то смысла дублировать его нет.

Как раз для таких ситуаций предусмотрены функция SetCodec и интерфейс ISetCompressCodecsInfo. По своей сути они равнозначны и дублируют друг друга, оба передают плагину объект ICompressCodecsInfo. Только SetCodec вызывается после загрузки плагина (и перед выгрузкой, но с null в качестве параметра), а через ISetCompressCodecsInfo можно передать объект конкретному экземпляру IInArchive или IOutArchive. Сам 7Zip использует оба метода. Объект ICompressCodecsInfo представляет собой простой перечеслитель кодеков, которые находятся НЕ в текущей dll. Т.е. 7Zip передает в плагин alpha.dll те кодеки, которые расположены в 7z.dll и в плагине beta.dll, а в beta.dll он передает те кодеки, которые расположены в 7z.dll и в alpha.dll. Как то так.

Форматный плагин использует эти списки для нахождения нужного кодека и создания его экземпляра. И мой lzip плагин не работает в far, поскольку не вызывается SetCodecs, и не вызывается ISetCompressCodecsInfo, и соответственно доступа к lzma кодеку нет.

Повторюсь, мне это не критично, я просто тестировал плагин на разных клиентах, и нашел недочет в far, о чем и сообщаю.

2useven10
Posts: 3762
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 » Mon 23 Oct, 2017 22:17

Dec, OK/
C SetCodecs ясно ISetCompressCodecsInfo могу подсмотреть в 7z.
Если можете дать ваш lzip плагин для тестирования (можно в private если он не public, раздавать его я не буду), мне будет проще.

Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec » Mon 23 Oct, 2017 22:20

Last edited by Dec on Mon 23 Oct, 2017 22:25, edited 1 time in total.

Calm_Kid
Posts: 31
Joined: Tue 10 Jan, 2006 11:01

arclite — работа с архивами на основе 7-Zip

Post by Calm_Kid » Tue 24 Oct, 2017 20:27

Столкнулся с накладкой ArcLite и Observer (Far 3.0 5070).
Сжал с помощью ArcLite ISO образ с разбивкой по 700 Мбайт, тип архиватора 7z, уровень компресии "Store" (надо было на флешку FAT32 закинуть).
При попытке разжать (по Enter на первом куске с расширением 001) сразу проваливаюсь в Observer который показывает часть корня ISO образа, который заархивирован. Вызов ArcLite для разархивации через меню по F11 отрабатывает корректно, вижу ISO образ.
Если сжимаю ISO образ с компресиией Nornal, то по Enter вижу корректно - образ (отрабатывает ArcLite, а не Observer).
Попробовал сжимать с разбивкой архиватором ZIP и режимом Store - тут все нормально, срабатывает сразу ArcLite и путаницы нет.
Получается комбинация наличие ArcLite, Observer, архиватор 7z, сжатие образа ISO с разбивкой в режиме Stоre.
Наверное можно "разрулить" настройками, только не очень пойму какими, расширение 001 прописано маской для ArcLite и почему вдруг режим сжатия повлиял на поведение/взаимодействие плугинов?

User avatar
John Doe
Бюрократ
Posts: 12205
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

arclite — работа с архивами на основе 7-Zip

Post by John Doe » Tue 24 Oct, 2017 21:47

Поведение вполне ожидаемое, ошибки нет.

Если мешает, то файле observer.ini предусмотрена возможность ограничить список обрабатываемых файлов по маске.
См. секцию секции [Filters], ключ ISO

Calm_Kid
Posts: 31
Joined: Tue 10 Jan, 2006 11:01

arclite — работа с архивами на основе 7-Zip

Post by Calm_Kid » Wed 25 Oct, 2017 06:57

John Doe wrote:
Tue 24 Oct, 2017 21:47
Поведение вполне ожидаемое, ошибки нет.
Ожидал, что зайдя в архив увижу имя ISO образа, распакую его и потом через Observer, если надо, внутрь уже образа зайду.
Так происходит в случае если сжимаю с режимом Normal.
John Doe wrote:
Tue 24 Oct, 2017 21:47
См. секцию секции [Filters], ключ ISO
Да, было пусто, просталил "ISO=*.iso", теперь Observer на архив не покушается.
Спасибо за наводку.

User avatar
John Doe
Бюрократ
Posts: 12205
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

arclite — работа с архивами на основе 7-Zip

Post by John Doe » Wed 25 Oct, 2017 07:03

Calm_Kid wrote:
Wed 25 Oct, 2017 06:57
Так происходит в случае если сжимаю с режимом Normal.
В режиме Store сжатия не просходит, а значит файл находится в архиве практически в исходном виде, потому Observer его и признаёт.

User avatar
John Doe
Бюрократ
Posts: 12205
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

arclite — работа с архивами на основе 7-Zip

Post by John Doe » Fri 03 Nov, 2017 17:43

Запускаю exe-файл из прямо панели, в результате arclite предлагает его обратно запаковать (как будто он изменился).
Это баг?

Update: сходная проблема https://bugs.farmanager.com/view.php?id=3328
Last edited by John Doe on Sat 11 Nov, 2017 16:00, edited 1 time in total.

2useven10
Posts: 3762
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 » Fri 03 Nov, 2017 19:35

запускаю - не предлагает.
желательно более внятно. в том числе о том что предлагает именно плагин.

User avatar
John Doe
Бюрократ
Posts: 12205
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

arclite — работа с архивами на основе 7-Zip

Post by John Doe » Fri 03 Nov, 2017 20:10

Windows XP
Захожу в любой архив, запускаю по Enter любой exe-файл.
После завершения наблюдаю диалог, предлагающий запаковать файл обратно, как будто я файл не запускал, а редактировал.
Воспроизводится на чистом профиле без каких-либо настроек.
Но на XP.

Вот пробую повторить на 8.1, с тем же архивом, и проблемы нет.

User avatar
Wave
Posts: 1762
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 15 times

arclite — работа с архивами на основе 7-Zip

Post by Wave » Fri 03 Nov, 2017 20:26

Кстати, наблюдал такое поведение часто. Но не помню, когда в последний раз. Пробую сейчас на Win7x64, не наблюдается. Раньше сидел на XP.
Пользуюсь ФАРом больше 20 лет © собирательный.

2useven10
Posts: 3762
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 » Fri 03 Nov, 2017 21:12

Ну мне любопытно, как это может зависеть от XP, надо бы проверить.
Но т.к. XP теперь только на вируталке, видимо не скоро. Чтобы не забылось, лучше на багтрекер...

User avatar
zg
zero-gravity
Posts: 5540
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 85 times
Contact:

arclite — работа с архивами на основе 7-Zip

Post by zg » Fri 03 Nov, 2017 21:25

файл записывается обратно, если у него изменились «last write time» или «change time». варианты:
1. антивирус.
2. fat с его округлениями.
3. в xp криво отдаётся «change time».
4. что-то ещё.

User avatar
John Doe
Бюрократ
Posts: 12205
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

arclite — работа с архивами на основе 7-Zip

Post by John Doe » Fri 03 Nov, 2017 21:52

1. отсутствует. Вирус вероятнее
2. ntfs

User avatar
zg
zero-gravity
Posts: 5540
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 85 times
Contact:

arclite — работа с архивами на основе 7-Zip

Post by zg » Fri 03 Nov, 2017 22:04

processmonitor'ом посмотрите, кто файл трогает.

Kirillony
Posts: 201
Joined: Tue 24 Jan, 2006 18:49
Has thanked: 4 times
Been thanked: 1 time

arclite — работа с архивами на основе 7-Zip

Post by Kirillony » Sun 05 Nov, 2017 17:22

2useven10 wrote:
Mon 09 Oct, 2017 11:07
В 7zfm 17.01 тоже 'Ошибка в данных'.
Так что это к Игорю Павлову.
Ошибка во всех версиях от 9.20 до 17.01
Такой разговор с Игорем Павловым состоялся:
Здесь

В общем суть в том, что некоторые exe-файлы не открываются arclite-ом, хотя и могли бы открываться.

2useven10
Posts: 3762
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 » Sun 05 Nov, 2017 20:25

Суть в том, 7z маниакально не любит лишние данные после архива.
Настолько что не позволяет открывать сам архив.
Репортов о неоткрываемости таких архивов (это не только exe) на форуме 7z достаточно.
Это поведение в отличие от режима парсера реализовано в коде 7z.dll.
Простого способа обойти это без залезания в код 7z я не знаю.
Режим парсера в arclite вряд ли появится в обозримом будущем.
Last edited by 2useven10 on Sun 05 Nov, 2017 20:25, edited 1 time in total.

Post Reply

Return to “Обсуждение плагинов”