Работа с архивами (ZIP, 7Z, ARJ, LZH, RAR, UC2, CAB, ACE и др.)

Важное замечание:

Многие старые упаковщики НЕ поддерживают длинные имена файлов Win9x/WinNT! Это не относится, однако, к внутреннему ZIP-упаковщику, встроенному в Total Commander, Zip-NT (http://infozip.sourceforge.net/) и последним версиям таких архиваторов, как ARJ, UC2, RAR, LHA и ACE. По возможности всегда используйте внутренний ZIP-упаковщик! По умолчанию Total Commander проверяет созданный ZIP-архив сразу же после упаковки, чтобы убедиться в отсутствии дефектов. Эту функцию можно отключить, добавив строку VerifyZip=0 в секцию [Packer] файла wincmd.ini.

Что такое архивы?

Архивы (упакованные файлы) — это обычные файлы с расширениями, например, .ZIP, .7Z, .ARJ, .LZH, .RAR, .UC2, .CAB, .ACE. Такие файлы содержат другие файлы в сжатом виде, занимая меньше места на диске, чем несжатые файлы. Для доступа к этим файлам их сначала нужно распаковать. Файлы с расширением .TAR пришли из мира Unix — они обычно упаковываются в файл GZIP (заканчивающийся на .GZ). В этом случае при модификации их с помощью Total Commander переупаковка будет выполнена поэтапно. Формат архивов CAB используется Microsoft для инсталляционных программ. Архивы CAB и 7Z стандартными средствами Total Commander можно только распаковывать; упаковка может быть добавлена установкой соответствующих плагинов.

Самораспаковывающиеся архивы

Total Commander также поддерживает самораспаковывающиеся архивы с расширением EXE или COM. Чтобы открыть такой архив, установите курсор на файле и нажмите Ctrl+PgDn. Чтобы создать самораспаковывающийся архив с помощью упаковщика ZIP, ARJ, RAR или ACE, выберите в диалоге архивации соответствующую опцию. Кроме того, можно преобразовать обычный ZIP-архив в самораспаковывающийся, заменив расширение ZIP-файла на EXE. Total Commander далее запросит ваше подтверждение на создание самораспаковывающегося ZIP-архива.

Созданный в Total Commander ZIP/SFX-архив поддерживает следующие опции командной строки. При указании любой из них распаковка начинается автоматически, без запроса пользователю.
Диск:\КаталогФайлы будут распакованы в указанный каталог. При наличии одноимённых файлов запрашиваются подтверждения перезаписи.
/SФайлы будут распакованы в текущий каталог. При наличии одноимённых файлов запрашиваются подтверждения перезаписи.
/OФайлы будут распакованы в текущий каталог. Одноимённые файлы будут автоматически перезаписаны.
Примечание: Одновременное задание нескольких опций не поддерживается, за исключением /O Диск:\Каталог (обязательно в таком порядке).

Как создавать архивы?

Чтобы упаковывать и распаковывать файлы, вам нужна специальная программа-упаковщик, наподобие pkzip.exe, pkunzip.exe, arj.exe, lha.exe, rar.exe, uc.exe и ace.exe. Total Commander может выступать для этих программ в качестве оболочки. Подключение и настройка внешних упаковшиков осуществляется на странице диалога настройки Архиваторы. Кроме того, Total Commander содержит PKZIP-совместимый внутренний упаковщик (настраиваемый на отдельной странице — Архиватор ZIP), который поддерживает почти все функции PKZIP, даже создание многотомных ZIP-файлов! Этот упаковщик основан на библиотеке ZLIB, чьим автором является Jean-loup Gailly. Исходный код на C бесплатно доступен в Интернете по следующему адресу: http://infozip.sourceforge.net/.
С помощью Total Commander 7Z- и CAB-архивы можно только распаковывать, но НЕ создавать (для упаковки нужен специальный плагин).
Дополнительные архиваторные плагины доступны на странице Addons нашего сайта https://www.ghisler.com/.
Начиная с версии 5.0 имеется внутренний TAR-, GZ- и TGZ-упаковщик. TGZ непосредственно создаёт TAR-файл внутри GZ-файла за одну операцию.

Использование Total Commander как оболочки для архивов

Total Commander может работать с упакованными файлами так, как будто бы они — каталоги. Это означает, что вы можете дважды щёлкнуть (или нажать Enter) на таком архиве, и Total Commander покажет содержимое этого файла. Все файлы, упакованные в архив, отображаются в обычной файловой панели.

Если файл был упакован в архив вместе со своим относительным путём, этот путь тоже отображается в виде обычных вложенных подкаталогов. По ним можно перемещаться обычным способом и распаковывать любые файлы или даже целые каталоги. Если вы хотите получить об упакованном файле дополнительные сведения, просто нажмите Enter или Alt+Enter для отображения в окне "Свойства упакованного файла" таких данных, как полный путь, размеры до и после сжатия, метод и коэффициент сжатия. Для подкаталога в архиве диалог свойств недоступен; по нажатию Enter или Alt+Enter TC открывает этот подкаталог.

Total Commander может открывать и архивы в архивах! Чтобы распаковать архив во временный каталог, просто нажмите на этом архиве Enter. Если архив имеет необычное расширение или если это самораспаковывающийся архив, то вам надо нажать Ctrl+PgDn. Когда вы выйдете из такого архива, переключившись на родительский каталог или другой диск, архив будет автоматически удалён из временного каталога.

Примечание: Если, находясь в архиве, вы обновите содержимое панели (клавиша F2 или Ctrl+R), Total Commander автоматически перейдёт в каталог, содержащий этот архив, или (если архив был вложенным) в вышележащий архив.

Упаковка/распаковка с помощью Total Commander

Распаковка

Откройте в одной из файловых панелей файл для распаковки (двойным щелчком на имени файла). В другой файловой панели откройте каталог назначения (тот, куда вы хотите поместить файлы). В исходном каталоге выделите файлы и/или каталоги, которые хотите распаковать. Нажмите F5 (Копирование). При этом откроется диалог распаковки файлов.

Если в открытом архиве нажать Alt+F9, то откроется другой вариант диалога распаковки. При этом будут распакованы ВСЕ файлы, удовлетворяющие введённой в диалоге маске, независимо от того, какие файлы были выделены.

Попытка непосредственно выполнить из архива операцию перемещения (F6) игнорируется. Для выполнения этой операции сначала скопируйте необходимые объекты, а затем удалите их из архива.

Чтобы распаковать все файлы из выбранного архива (или нескольких архивов), просто нажмите Alt+F9. Total Commander имеет встроенные распаковщики для ZIP-, 7Z-, ARJ-, LZH-, RAR-, TAR-, GZ-, CAB- и ACE-файлов.

Упаковка

Выберите файлы, которые хотите упаковать. Затем выберите команду Упаковать в меню Файлы или нажмите Alt+F5. Появится диалог, где вы можете выбрать параметры упаковки файлов. Введите нужное имя для файла архива, который хотите создать. После нажатия Enter выбранные файлы будут упакованы в этот файл.

Для перемещения (удаления после упаковки) выделенных файлов вы можете использовать сочетание Alt+Shift+F5.

Важно: В диалоговом окне необходимо наличие имени упаковщика (ZIP, ARJ, LHA, RAR, UC2, ACE и т. п.) и двоеточия перед именем файла, например, zip:c:\test.zip, иначе файлы будут попросту скопированы/перемещены!!!

Если вы настроили Total Commander для использования внутреннего ZIP-упаковщика, то можете пользоваться и внешним упаковщиком (PKZIP или Zip-NT): вместо "ZIP:" поместите перед именем ZIP-файла строку "EXT:" (от слова "external")! Вы также можете использовать внутренний упаковщик, указав "INT:" (сокращение от "internal").

Добавление файлов к существующему архиву

Если вы хотите добавить файлы к существующему архиву, сначала откройте в одной из файловых панелей архив. Затем выделите в другой панели файлы и каталоги, которые собираетесь добавить. Нажмите F5, чтобы упаковать выбранные файлы. При этом появится диалог упаковки, нажатие Enter запустит соответствующий упаковщик. TGZ-, GZ- и CAB-архивы стандартными средствами Total Commander изменить невозможно.

При нажатии F6 выбранные файлы будут перемещены (удалены после упаковки).

Ограничение: Вы не можете добавить файлы в любой подкаталог архива, кроме случаев применения внутреннего ZIP-, TAR- или TGZ-упаковщика или внешних RAR и UC2, а также некоторых плагинов. Однако у вас есть возможность добавить целые каталоги со всеми файлами. Вы можете выбрать, хотите ли сохранить упакованные файлы, включая их пути, или же только одни файлы. Чтобы добавить файлы в подкаталог с помощью внутреннего упаковщика или поддерживаемых внешних упаковщиков, вы должны отделить подкаталог прямой (не обратной!) косой чертой '/' !
Пример: zip:c:\test.zip/это\наш\подкаталог

Удаление файлов из архива

Двойным щелчком откройте архив, из которого хотите удалить файлы. Выберите файлы и/или каталоги, которые вы хотите удалить, и нажмите F8 или Del для их удаления.

Просмотр файлов в архиве

Чтобы отобразить файлы с помощью встроенного или внешнего просмотрщика, просто нажмите F3 (или Alt+F3), после чего файл распаковывается во временный каталог, а затем отображается просмотрщиком. После закрытия просмотрщика временный файл удаляется, а оригинальный архив остаётся неизменным. Однако если вы используете плагин, поддерживающий редактирование файла прямо в окне просмотрщика, то после сохранения файла и закрытия окна вам будет предложено переупаковать обновлённый файл обратно в архив (точно так же, как при редактировании по F4).

В режиме быстрого просмотра можно просматривать текстовые файлы, содержащиеся в некоторых архивах (ZIP, ARJ, LZH и GZ), не входя при этом в сами архивы. Если текстовых файлов несколько, то сначала будет сделана попытка найти файл file_id.diz, далее приоритет имеют файлы, распознанные как текстовые и отвечающие шаблону read*.*, затем файлы с расширением .nfo и, наконец, первый из обнаруженных файлов с расширением .txt. Если ни одного из указанных файлов в архиве нет, его содержимое показывается в двоичном представлении.

Редактирование файлов из архива

Для правки файла выбранным вами редактором просто нажмите F4. После запроса на помещение во временный каталог для правки файл автоматически распаковывается и будет вновь запакован в архив, если он был изменён редактором. Переупаковка НЕ будет работать с архивами CAB! В таком случае изменённый файл не будет удалён и останется во временном каталоге.

Чтобы редактировать файл с помощью ассоциированной программы, нажмите Enter, затем выберите в диалоге "Свойства упакованного файла" кнопку Распаковать и выполнить. Далее файл автоматически распаковывается. Он тоже может быть упакован заново, если был изменён.

Запуск программы непосредственно из архива

Чтобы запустить находящуюся в архиве программу, выберите в архиве соответствующий исполняемый файл, нажмите Enter, затем выберите в диалоге "Свойства упакованного файла" кнопку Распаковать и выполнить. Файл автоматически распаковывается во временный каталог, откуда и произойдёт запуск программы. По завершении работы программы её исполняемый файл будет автоматически удалён из временного каталога.

Если, однако, для запуска программы (например, инсталлятора) требуется обращение к другим файлам, находящимся в архиве, вышеописанный метод работать не будет. В этом случае нужно выбрать в "Свойствах архива" другую кнопку — Выполнить, распаковав всё. При этом во временный каталог будут распакованы ВСЕ файлы, находящиеся в архиве.

Другие функции, доступные в архиве

С объектами в архиве можно выполнять и некоторые другие действия.

Допускается копирование файлов/каталогов по F5 из одного архива в другой. Фактически это совокупность двух операций — извлечения из исходного архива и упаковки в архив назначения. (Для всех форматов, кроме ZIP, должен быть подключён соответствующий архиватор с поддержкой упаковки.)

Можно искать файлы и содержащийся в них текст непосредственно в архивах, если соответствующий формат архива допускает такую возможность. (Из стандартно поддерживаемых архивов эта функция не работает только в UC2.)

Поддерживается сравнение содержимого исходного и целевого каталогов, а также сравнение файлов по содержимому. При этом могут сравниваться как архив и каталог, так и два архива.

В архиве также можно:
создать новый каталог по F7 (поддерживается не во всех типах архивов);
переименовать с помощью Shift+F6 одиночный файл/каталог (только в ZIP-архивах, при этом в контекстное меню объектов добавляется пункт Переименовать...);
выполнить синхронизацию, в т. ч. между двумя архивами (однако диалог синхронизации поддерживает сравнение по содержимому не для всех типов архивов);
просмотреть единым списком все файлы из содержащихся в архиве подкаталогов;
вывести на печать список содержащихся в архиве файлов (распечатка единичного файла из архива не выполняется);
подсчитать занимаемое место с помощью клавиш Пробел, Alt+Shift+Enter или Ctrl+L.