Страница 1 из 2

[Util] Пакетная упаковка

Добавлено: Вт май 08, 2007 14:19
aLexx
Вот решил выложить на суд широкой общественности утилитку, разработанную несколько лет назад.
Сам юзаю её постоянно в полный рост.
Скриншот:
http://alexrudin.narod.ru/tc/img/packdir.gif

Принцип работы. Есть несколько каталогов, которые надо упаковать. Ессно, можно при упаковке
включить опцию "Отдельные архивы для каждого...", но в этом случае, для того, что бы войти в
архивированный каталог, надо вначале открыть (войти в) архив, а потом уже можно открыть и сам
каталог. Пример: если таким образом сжать кучку плагинов ТС, то автоустановка плагинов в этом
случае, конечно, не сработает. Т.е., надо сперва войти в каждый нужный каталог, отметить всё,
а потом уже упаковывать. Этим и занимается моя утилитка.

В работе используются консольные версии архиваторов: 7zip (4.44b), Ace (2.60) и Rar (3.70b2).
Любой архиватор можно выключить из работы 3 способами:
1. Использовать кнопку соответствующего архиватора при старте утилиты. При следующем старте
эта кнопка будет опять включена.
2. Переименовать соответствующий архиватор. Тогда его кнопка будет задизейблена. Вернув ему
прежнее имя, мы опять включаем его в работу.
3. Удалить архиватор.

Включенный чек-бокс "Проверка длины архивов" означает, что после упаковки будет выбран самый
короткий архив, остальные удалятся. С "Удалить файлы после упаковки", я думаю, всё ясно. :)
Кстати, 7zip отрабатывает два раза: методы LZMA И PPMd. Из полученных архивов остаётся тот,
что короче.

PS. Архиватор Arj, к сожалению, не выдержал конкуренции. Из 14653 архивов (файло всяко разное,
тут я брал числом, что были и тексты, и картинки, и всякие документы и исполняемые файлы):
7zip - 11409 шт. (77,9 %); Ace - 1989 шт. (13,5 %); Rar - 1165 шт. (8,6 %).
Так вот, на долю arj выходило по-любому менее 3 %. Только время терять на упаковку.

PSS. Если кто будет юзать эту утильку (не приведи Господь!), покорнейше прошу вести статистику
и докладывать её здеся.

Добавлено: Ср май 16, 2007 16:52
aLexx
Алё, народ, неужто никто не попробовал?...
Откликнитесьь!

Добавлено: Сб май 19, 2007 06:11
aLexx
Обновил архиваторы: 7zip (4.45b) и Rar (3.70b8).
Если про Rar сказать нечего (упаковка практически не изменилась), то по 7zip скажу следующее:
скорость работы возросла и улучшена степень сжатия, хоть и немного (на 1-2%).

Добавлено: Вс май 20, 2007 22:28
pajvela
aLexx, вы забыли упомянуть как вашу утилиту привязать к ТС...
Параметры %L, %P, etc не работают.

Добавлено: Вт май 22, 2007 20:06
aLexx
А она никаким боком к ТС не приязывается... :(
Совершенно самостоятельная прога. Служит только для упаковки.
Упаковывает всё, что ей подсунешь в еённый каталог.

Добавлено: Чт май 24, 2007 11:36
Sam Dark
А если попробовать привязать?

Добавлено: Сб май 26, 2007 18:53
aLexx
Хм-м-м... Становится интересно. Надо попробовать.

Добавлено: Вс май 27, 2007 06:21
aLexx
Так-с, готово. Прикрутил коммандную строку. Параметры:

PackDir.exe "sourcedir" ["destinationdir"] [-r] [-d] [-c] [-7z] [-7lzma] [-7ppmd] [-ace] [-rar]

"sourcedir" - Обязательный. Каталог, где находятся каталоги (тавтолог... :)), предназначенные для упаковки.
"destinationdir" - Необязательный. Каталог, куда сбрасывать готовые архивы. Если отсутствует, то архивы
будут писаться в "sourcedir". Кавычки в путях ОБЯЗАТЕЛЬНЫ!!! И пробел между ними.
Ключи (необязательные, могут отсутствовать):
-r[un] -- Автоматически запустить утильку после просчёта всех директорий;
-d[el] -- Отключить удаление исходных каталогов (по умолчанию включено);
-c[hk] -- Отключить проверку на длину архивов (по умолчанию включено);
-7z[ip] -- Отключить архиватор 7zip;
-7l[zma] - Отключение упаковки 7zip методом LZMA;
-7p[pmd] - Отключение упаковки 7zip методом PPMd.
-ace -- Отключить архиватор ACE;
-rar -- Отключить архиватор RAR.

Если имеются оба ключа [-7lzma] [-7ppmd], то это будет равнозначно ключу
-7z[ip] - Отключение упаковки 7zip.

Кнопка на панели ТС:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Addon\PackDir\PackDir.exe"
"%P" "%T" -r
%COMMANDER_PATH%\Addon\PackDir\PackDir.exe
Пакетная упаковка каталогов


-1

Здесь в параметрах комм. строки только пути:
"%P" - панель, где стоит курсор;
"%T" - противоположная панель;
и ключ автозапуска -r[un]. По вкусу каждый может поставить другие ключи и свою иконку.
Напоминаю, что кавычки вокруг %P и %T ОБЯЗАТЕЛЬНЫ!!! И пробел между ними. Также пробелами
разделяются все ключи.
Также добавлена фишка: при использовании ключа -r[un], если при нажатии кнопки "PackDir"
на панели ТС держать нажатым SHIFT, автозапуск блокируется.

Ессно, стопроцентно, полно глюков. Те, что я выловил за 3 дня, пофиксил.
Просьба потестировать в полный рост, особенно упаковку 7zip на разном объёме ОЗУ.

Добавлено: Вс июн 03, 2007 11:09
aLexx
Итак, новая версия - PackDir v2.1:
Добавлен обратный отсчёт времени. Конечно, приблизительный, но всё же.

PS. Если в упаковываемом каталоге находится только один файл какого-либо дистрибутива
(типа, "setup.exe" или "install.exe"), можете не заморачиваться с моей утилитой. Всё
равно, архив, созданный штатным зипом ТС, будет короче!

PSS. Заметил глюк:
Заголовок окна изменяется по мере того, как продолжается упаковка (имя текущего каталога
и какой он по счёту из общего числа). Но - в панели задач оно не меняется! Если нажать
"ALT+TAB", то увидим 2 значка "PackDir". Один значок ведёт на изменяемое окно, как и
положено, а второй - на окно, которое было при старте программы (оно же отображается и
в панели задач). Типа, привидение какое-то или фантом. Причём, что интересно, это дело
возникает только после начала упаковки второго каталога, т.е., если упаковываемый каталог
один, то всё в порядке. Значит, что-то не в порядке с переименованием формы "PackDir"...
Пока не нашёл, как это убрать. :(

Добавлено: Чт июн 28, 2007 22:10
aLexx
Обновился "PackDir" до версии 2.2
Брать здесь (680 кб):
http://alexrudin.narod.ru/tc/Other-Util/PackDir_22.rar

Убраны почти все глюки, добавлена документация для консольных архиваторов и самой проги.

Добавлено: Пт июн 29, 2007 10:44
test1024
А можно без архиваторов. Они у меня все есть.

Добавлено: Пт июн 29, 2007 16:09
aLexx
ОК. Готово. Лежит здесь (120 кб):
http://alexrudin.narod.ru/tc/Other-Util/PackDir.rar

Добавлено: Вт дек 16, 2008 15:47
_Johm
Важная тема про такой способ архивирования. Часто необходим, но как собирать архив без сжатия?
и в zip?

Добавлено: Вт дек 16, 2008 16:57
aLexx
Не совсем понял... Что значит без сжатия?
Если для того, что бы отрабатывал "pluginst.inf", то оно с любым типом архивов работает!
А насчёт ZIP? Включить консольку?

Добавлено: Вт дек 16, 2008 18:10
_Johm
не для плагинов Total
для упаковки, к примеру, mp3-файлов. Чтобы кол-во файлов было на пару порядков поменьше, есть плееры которые читают из архивов.

Без консоли, через кнопку Total Commander
Упаковка в режиме "без сжатия" rar'ом, но в тип zip (zip непринципиально)
Можно?