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

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

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

Post by 2useven10 »

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

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

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











Кодек LZHAM
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Latest post of the previous page:

Arclite можно научить нормально работать и с такими именами.
Но хотелось бы сначала убедиться, что это не баг 7z.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

Формально все правильно:
https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT wrote:

Code: Select all


   4.4.17 file name: (Variable)

   4.4.17.1 The name of the file, with optional relative path.
   The path stored MUST NOT contain a drive or
   device letter, or a leading slash.  All slashes
   MUST be forward slashes '/' as opposed to
   backwards slashes '\' for compatibility with Amiga
   and UNIX file systems etc.
Нет прямых слешей - нет структуры.

Другое дело, уместен ли такой пуризм, если в 99% случаев открывать будут эксплорером или винраром и структура будет.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Бодаться с пуризмом Павлова мне лень.
Проще в arclite скорректировать имена.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

arclite 323 -- теперь структура должна быть и с 7z 21.xx
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

https://github.com/FarGroup/FarManager/ ... e.cpp#L738

А 7z там оригинальные имена ни в каком виде не экспозит, дабы проверить, что там точно \, замененный на F05C, а не "настоящий" F05C?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

1) я не знаю способа получить 'оригинальное' имя (это получается через GetProperty(idx, kpidPath))
2) 0xf05c это range: private use, и 'настоящий' в имени маловероятен.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

Ясно. Вообще, конечно, отдавать из библиотеки наружу уже покоцанные имена, вместо того, чтобы давать клиенту самому решать, что с ними делать - это интересный дизайн.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Ну в коде самого 7z везде слэши используются как разделитель для директорий.
И чтобы было как в Linux (почти) и не переделывать существующий код, выбран простейший способ.
0xf05c это не худший вариант, в юникоде есть и нормальный символ, который выглядит как '\'.
lost
Posts: 149
Joined: Mon 31 Oct, 2005 09:42
Has thanked: 12 times
Been thanked: 6 times

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

Post by lost »

В хелпе по arc: не нашёл список исключений. Есть этот функционал в плагине?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

lost wrote: Wed 08 Dec, 2021 18:56 не нашёл список исключений. Есть этот функционал в плагине?
Уточните, пожалуйста, какую конкретно функциональность вы имеете в виду.
Фар есть инструмент, а не нянька. © 2009 DrKnS
lost
Posts: 149
Joined: Mon 31 Oct, 2005 09:42
Has thanked: 12 times
Been thanked: 6 times

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

Post by lost »

HaRT wrote: Wed 08 Dec, 2021 19:12 Уточните, пожалуйста, какую конкретно функциональность вы имеете в виду.
Да... я создаю архив в командной строке, используя префикс плагина arc:...., указываю там маску файлов для добавления в архив

Code: Select all

*.*
. Но хотелось бы иметь ещё и маски исключений, чтобы не все файлы каталога (подкаталогов) включались в архив. Вроде, в самом 7z это есть, а в плагине не нашёл.
Last edited by lost on Thu 09 Dec, 2021 13:41, edited 1 time in total.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Механизм применения масок в фар предполагает проверку каждого потенциального имени на соответствие маске.
Если имена берутся из архива (извлечение, удаление), то проблем нет - все имена есть, и насколько я помню, фаровские маски в этом случае должны работать.
Для добавления файлы берутся извне и применение масок становится слишком нетривиальной задачей.
Поэтому работают только те маски, которые обрабатывает 7z.dll
Last edited by 2useven10 on Thu 09 Dec, 2021 22:09, edited 2 times in total.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

А может даже не 7z.dll а парсер комстроки.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

2useven10, видимо, lost имел в виду параметр -x (-x[r[-|0]]{@listfile|!wildcard} : eXclude filenames). Вот как раз его явно не хватает в комстроке (для полноты). Хотя если использовать arc: в виде префикса комстроки, то я не понимаю, чем это может быть лучше вызова 7z.exe (ну да, надо устанавливать…).
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

-x выполняется оболочкой (7z.exe, ...), не 7z.dll
Повторять этот функционал в легковесном обработчике префиксной командной строки плагина не вижу смысла.
И да, никто не мешает просто вызвать 7z.exe, или создать нужный список файлов в lua макросе.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

2useven10 wrote: Fri 10 Dec, 2021 00:04 никто не мешает просто вызвать 7z.exe
На самом деле был бы смысл в комстроке arc: список файлов указывать в формате, принятом в ФАРе: (а) использовать именованные списки масок и (б) писать исключения после символа |. Вот это, наверно, было бы полезно. Иначе смысла вызывать плагин из комстроки не прослеживается.
Last edited by buniak_a_h on Fri 10 Dec, 2021 01:22, edited 2 times in total.
Post Reply

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