Глава 33 Работа с архивными файлами в DOS 33. 1. Назначение и возможности программ-упаковщиков Назначение Программы-упаковщики позволяют за счет применения специальных методов
"упаковки" информации сжимать информацию на дисках, т.е. создавать копии
файлов меньшего размера, а также объединять копии нескольких файлов в
один архивный файл. Применение программ-упаковщиков очень полезно: Х при передаче информации по телефонным линиям (через модем); Х при создании дистрибутивов программных комплексов и т.д.; Х при создании архива файлов. Возможное! и ^к правило, программы для упаковки (архивации) файлов позволяют поме-
щать копии файлов на диске в сжатом виде в архивный файл, извлекать фай-
лы из архива, просматривать оглавление архива и т.д. Разные программы от-
личаются форматом архивных файлов, скоростью работы, степенью сжатия
файлов при помещении в архив, удобством использования. Наиболее Наиболее распространенные программы-упаковщики имеют приблизительно
пппуляпные одинаковые возможности и ни одна из них не превосходит другие по всем па-
раметрам: одни программы работают быстрее, другие обеспечивают лучшую iipolpdMMbi степень сжатия файлов. Даже если сравнивать программы только по степени
сжатия, то среди них нет лидера: разные файлы лучше сжимаются разными
программами. Среди наиболее распространенных программ можно назвать
ARJ, PKZIP, LHA, РКРАК, РАК. 3.чм('ч:1ни<' Большинство программ-упаковщиков распространяется как "Shareware", т.е.
они могут быть получены бесплатно, но если Вы хотите их использовать постоянно, то
должны выслать разработчикам указанное ими небольшое вознаграждение. В настоящей главе мы кратко опишем основные возможности двух наиболее
популярных программ-упаковщиков Ч PKZIP/PKUNZIP (версии 2.04g) и
ARJ (версия 2.30). Эти программы обеспечивают высокую скорость работы и
большую степень сжатия информации. Программа PKZIP/PKUNZIP стала
фактическим стандартом сжатия файлов, а программа ARJ, обеспечивая почти
такую же степень сжатия, отличается разнообразным сервисом и умеет созда-
вать архивы, располагающиеся на нескольких дискетах. 33.2. Сведения об архивных файлах Определение Архивный файл (архив) представляет собой набор из одного или нескольких
файлов, помещенных в сжатом виде в единый файл, из которого их можно при
необходимости извлечь в первоначальном виде. Архив содержит оглавление,
позволяющее узнать, какие файлы содержатся в архиве. В оглавлении архива
для каждого содержащегося в нем файла хранится следующая информация: Х имя файла: Х сведения о каталоге, в котором содержится файл; Глава 33. Работа с архивными файлами в DOS :ЮК!.'Г" Н.1л ф^1и;1 'h При.р^ммы для
^>c)c.nужив<Х]^-iиХ,^
архивных фа илон Х дата и время последней модификации файла; Х размер файла на диске и в архиве; Х код циклического контроля для каждого файла, используемый для прове-
рки целостности архива. Программа ARJ позволяет создавать многотомные архивы Ч по-
следовательности архивных файлов. Они полезны при архивации больших
комплексов файлов на дискеты. Имена архивных файлов программ PKZIP/PKUNZIP и ARJ обычно имеют
следующие расширения: .ZIP Ч для архивных файлов программ PKZIP/PKUNZIP;
.ARJ Ч для архивных файлов программы ARJ (у многотомных архивов
продолжения архива имеют расширения .А01, .А02 и т.д.). При использовании этих программ по умолчанию (если иное расширение явно
не задано) подразумеваются именно эти расширения имен архивов. Программа ARJ выполняет все функции по обслуживанию своих архивов. Так,
она может и помещать файлы в архив, и извлекать файлы из архива, и делать
"саморазворачивающиеся" файлы и т.д. А для .ZIP-файлов различные функ-
ции по обслуживанию архивов выполняются разными программами: PKZIP
PKUN21P
PKZIPFIX
ZIP2EXE помещение файлов в архив;
извлечение файлов из архива;
восстановление поврежденного архивного файла;
создание "саморазворачивающихся" файлов. Кроме того, разработчиками этих программ и независимыми программистами были
созданы различные вспомогательные программы для обработки архивов, например:
PKZFIND Ч поиск файла на диске и в .ZIP-архивах; REARJ Ч преобразование всех
архивов в .ARJ-архивы; ARJSORT Ч сортировка .ARJ-архивов; ARCVIEW Ч просмотр
и диалоговая модификация архивов.
33.3. Режимы программ PKZIP/PKUNZIP и ARJ Программа AF!..! прогрлммы PKZIP
и PKUNZIP Программы PKZIP/PKUNZIP и ARJ имеют большое количество функций, вы-
бор нужных функций выполняется в командной строке при вызове программ. Задание функций программы ARJ осуществляется с помощью задания кода коман-
ды и режимов. Код команды Ч это одна буква, она указывается в командной строке
сразу за именем программы и задает вид деятельности, который должна выполнить
программа. Например, А Ч добавление файлов в архив, Т Ч тестирование (проверка)
архива, Е Ч извлечение файлов из архива и т.д. Для уточнения того, какие именно действия требуются от программы ARJ, можно за-
давать режимы. Режимы могут указываться в любом месте командной строки после
кода команды, они задаются либо с предшествующим знаком "-": ЧV, ЧМ и т.д., либо
с предшествующим знаком "/": /V, /М и т.д. (однако в одной командной строке
смешивать эти два способа нельзя). Задание функций программ PKZIP/PKUNZIP осуществляется только с по-
мощью указания режимов. Режимы могут указываться в любом месте командной стро-
ки после имени программы, они задаются либо с предшествующим знаком "-", либо с
предшествующим знаком "/". 33.4. Помещение файлов в архив Форм<]г кпм:'<1-щ При помещении файлов в архив используются следующие форматы вызова: Часть 7. DOS для опытного пользователя PKZIP ARJ команда режимы
режимы имя-архива
имя-архива ^к:аталог\) ^,uмeнa-фaйлoв').
Замена-файлов^. Параметры команд Выполнение
программ Задание степени
сжатия Режимы выбора
архивируемых
файлов Примеры команда Ч одна буква, которая задает для программы ARJ вид выполняемой деятель-
ности. Например, А Ч добавление файлов в архив, М Ч пересылка файлов в ар-
хив и т.д.; режимы Ч указываются с предшествующим знаком "-" или "/", они задают или
уточняют требуемые от программы архивации действия; имя-архива Ч задает обрабатываемый архивный файл. Если этот архивный файл не
существует, он автоматически создается. Если расширение у имени файла не ука-
зано, то подразумевается расширение .ZIP для программы PKZIP, и .ARJ для про-
граммы ARJ; каталог Ч для программы ARJ задает базовый каталог, в котором содержатся файлы,
включаемые в архив. Впрочем, с помощью задания каталога в самих именах фай-
лов в архив можно включить и файлы, содержащиеся в других каталогах. Если
базовый каталог не задан, то он подразумевается равным текущему каталогу; имена-файлов Ч задают файлы, включаемые в архив. При задании имен файлов мож-
но использовать символы * и ?. Если имена файлов не заданы, то подразумевают-
ся все файлы из текущего (для программы ARJ Ч базового) каталога. После ввода команды программы-упаковщики начинают выполнять запрошен-
ные действия. На экране изображаются имена помещаемых в архив файлов.
При сжатии каждого файла выводится либо процент обработанной части фай-
ла, либо горизонтальная полоска, сообщающая о ходе сжатия. После оконча-
ния сжатия каждого файла напротив его имени сообщается о степени сжатия.
Заметим, что программы ARJ и PKZIP сообщают о степени сжатия по-
разному. Например, если исходный файл удалось сжать в 10 раз, то про-
грамма ARJ выведет по окончании сжатия 10% (отношение длины сжатого
файла к длине исходного файла), а PKZIP Ч 90% (на сколько процентов уда-
лось сжать файл при помещении в архив). По умолчанию программы PKZIP и ARJ обеспечивают достаточно большую скорость работы
и близкую к максимальной степень сжатия. Но при желании Вы можете получить макси-
мальную (на несколько процентов большую) степень сжатия файлов за счет несколько бо-
лее медленной работы. Для этого следует указать режим -ЕХ программы PKZIP и режим ХJM программы ARJ. Программы PKZIP и ARJ имеют три основных режима помещения файлов в
архив: Add Ч добавление в архив всех файлов;
Update Ч добавление в архив новых файлов;
Freshen Ч добавление новых версий имеющихся в архиве файлов. Эти режимы имеют следующие особенности: Х в режиме добавления (Add) в архивный файл добавляются все указанные в команде
файлы; Х в режиме добавления новых файлов (Update) в архивный файл добавляются те
файлы, у которых либо нет копий в архиве, либо эти копии имеют более раннюю
дату, чем у файла. Задание этого режима позволяет предотвратить затирание более
новых версий файлов в архиве; Х в режиме обновления версий файлов (Freshen) в архив добавляются новые версии
тех файлов, которые уже имеются в архиве. Иначе говоря, в архив добавляются те
файлы, копии которых уже находятся в архиве, но имеют более раннюю дату, чем у
соответствующего файла на диске. Этот режим позволяет добиться того, чтобы ар-
хивный файл содержал наиболее свежие версии своих файлов. Задание этих режимов осуществляется следующим образом:
Режим PKZIP AFf.J Add по умолчанию команда А
Update режим -U команда U
Freshen режим -F команда F PKZIP myzip Ч добавление в архивный файл MYZIP.ZIP всех файлов из текущего катало- Глава 33. Работа с архивными файлами в DOS ARJ a myarj Ч добавление в архивный файл MYARJ.ARJ всех файлов из текущего катало-
га; PKZIP doefiles *.doc a:\*.doc Ч добавление в архивный файл DOCFILES.ZIP всех фай-
лов с расширением .DOC из текущего каталога и из корневого каталога на диске А: : ARJ a doctiles *.doc a:\*.doc Ч добавление в архивный файл DOCFILES.ARJ всех файлов с расширением .DOC из текущего каталога и из корневого каталога на диске А: , PKZIP Чи а:туагс Ч обновление архивного файла A:MYARC.ZIP. В архивный файл до-
бавляются файлы из текущего каталога, однако если какой-либо файл уже имеется в
архиве и дата копии файла в архиве более поздняя, чем у файла из текущего каталога,
то такой файл не дооавляется в архив, и в архиве сохраняется более поздняя версия
файла; ARJ и а:туагс Ч обновление архивного файла A:MYARC.ARJ. В архивный файл добавля-
ются все файлы из текущего каталога, кроме тех, у которых в архиве имеются копии с
более поздним временем создания или последней модификации: PKZIP Чf а:туагс b:\*.* Ч добавление в архив A:MYARC.ZIP новых версий файлов этого архива из корневого каталога диска В: : f а:туагс b:\*.*
хива из корневого каталога диска ARJ f а:туагс b:\*.* Ч добавление в архив A:MYARC.ARJ хива из корневого каталога диска В: . новых версий файлов этого ар- 33.5. Пересылка файлов в архив Примеры Очень часто требуется не копировать, а пересылать файлы в архив. Иначе
говоря, те файлы, которые были успешно добавлены в архив, должны уда-
ляться с диска. Для пересылки файлов в архив можно использовать следую-
щие режимы программ PKZIP и ARJ: PKZIP Ч режим -М (можно указывать совместно с режимами -A, -U или -F):
ARJ Ч режим -D (можно указывать совместно с командами А, U или F) или команда М; Команда М программы ARJ эквивалентна команде А с режимом -D, она зада-
ет добавление файлов в архив с удалением исходных файлов. I .'i:iMt'":vuT-< 1. Если при архивации файлов возникает ошибка, то исходные файлы не унич-
тожаются. 2. Использование пересылки файлов в архив позволяет существенно сократить место на ди-
ске, занимаемое файлами. Часто имеет смысл хранить редко употребляемые программы и
данные в виде архивного файла, а при необходимости их использования Ч извлекать из ар-
хива. 3. При использовании программы ARJ целесообразно при пересылке файлов в архив указы-
вать также режим -jtl. Он обеспечивает перед удалением исходного файла его сравнение с
копией в архиве. PKZIP Чm myarc Ч пересылка в архивный файл MYARC.ZIP всех файлов из текущего ка-
талога; ARJ a Чd myarc Ч пересылка в архивный файл MYARC.ARJ всех файлов из текущего ка-
талога; ARJ m Чjtl myarc Ч пересылка в архивный файл MYARC.ARJ всех файлов из текущего
каталога с дополнительным контролем правильности помещенных в архив копий фай-
лов;
PKZIP -m JP Чm Чu doefiles *.doc a:\*.doc Ч пересылка в архивный фа
файлов с расширением .DOC из текущего каталога и из корне
1айл DOCFILES.ZIP всех ....Д_ . Д_. Д..Д.....-... .__Д из текущего каталога и из корневого каталога на диске
А:, кроме тех, копий которых нет в архиве DOCFILES.ZIP; ARJ I Чd doefiles *.doc Ч пересылка в архивный файл DOCFILES.ZIP новых версий всех
файлов с расширением .DOC из текущего каталога. 33.6. Извлечение файлов из архива Форма ihi команд Как упоминалось ранее, для извлечения файлов из архивов, созданных про-
граммой PKZIP (.ZIP-файлов), используется программа PKUNZIP. А програм-
ма ARJ сама умеет извлекать файлы из своих архивов. Программы PKUNZIP и ARJ имеют следующие форматы вызова:
PKUNZIP режимы имя-архива ^импна-файлов]... Часть 7. DOS для опытного пользователя Параметры команд Режимы замещения
существующих на
диске файлов ARJ команда режимы имя-архива ^ката.лог\) Замена-файлов^... команда Ч одна буква, которая задает действие, которое должна выполнить програм-
ма ARJ. Например, Е Ч извлечение файлов из архива, Х Ч извлечение файлов
из архива в соответствующие каталоги и т.д.; режимы Ч указываются с предшествующим знаком "Ч" или "/"; они задают или
уточняют требуемые от программы действия; имя-архива Ч задает имя архива, откуда извлекаются файлы. Если расширение у име-
ни архивного файла не указано, подразумевается .ZIP для программы PKUNZIP и
ARJ Ч для программы ARJ. В имени архива можно употреблять символы * и?Ч
в этом случае обрабатывается несколько архивных файлов; каталог Ч задает каталог, в который помещаются извлекаемые файлы. Если каталог
не указан, подразумевается текущий каталог; имена-файлов Ч указывают, какие файлы извлекаются из архива. При задании имен
файлов можно использовать символы * и ?. По умолчанию подразумеваются все
файлы, имеющиеся в архиве. После ввода команды программы архивации начинают извлечение файлов из
архива. На экране изображаются имена извлекаемых из архива файлов. Заме-
тим, что при указании имен извлекаемых из архива файлов программа
PKUNZIP использует символ "/" вместо "\" в качестве разделителя имен ка-
талогов и файлов. При извлечении файлов из архива может возникнуть ситуация, когда в том
каталоге, в который извлекается файл, уже имеется файл с таким же именем.
По умолчанию программы PKUNZIP и ARJ выполняют следующие действия: PKUNZIP Ч на экран выводится запрос: имя-файла already exists. Overwrite
(y/n/a/r)? (Файл существует. Перезаписать?). Вы можете нажать на одну из кла-
виш: CY) Ч заместить имеющийся на диске файл, (NJ Ч не извлекать файл из архива,
(А) Ч всегда замещать имеющиеся на диске файлыСбольше запросов не будет), (D Ч
присвоить извлекаемому из архива файлу другое имя; ARJ Ч если файл на диске более старый (имеет более раннюю дату последней моди-
фикации, чем файл в архиве), на экран выводится запрос: "имя-файла exists. Over-
write tYNAQ] ?". Если файл на диске имеет ту же или более позднюю дату последней
модификации, что и файл в архиве, выводится тот же запрос, но вместо "exists" со-
общается "is same or newer". Можно нажать на одну из клавиш: Q Ч заместить
имеющийся на диске файл, QD Ч будет выдан запрос, в ответ на который можно вве-
сти новое имя файла или сразу нажать (Enter) для пропуска извлечения данного фай-
ла, (А] Ч всегда замещать имеющиеся на диске файлы (больше запросов не будет), (0)
Ч окончить работу программы ARJ. Замечание. Программа ARJ позволяет не выводить запрос о новом имени файла. Для этого
надо указать при ее вызове режим -JYN. При этом, если на запрос о перезаписи файла
получен ответ ("м], извлечение данного файла из архива не производится. Если действия, предпринимаемые по умолчанию, Вас не устраивают, можно
указать с помощью режимов более подходящий способ действий: f f^h^tt"it41!U' .)^ fl 1>ui /W \/.1Г ЛК.1
Всех файлов Без запросов С запросами -0 По умолчанию -JYO По умолчанию
Новых версий и новых файлов Без запросов С запросами -N Нет -V -JYO -U
Новых версий файлов Без запросов С запросами -F Нет -F -F -JYO
Новых файлов Без запросов Нет -N
Здесь извлечение новой версии файла Ч ситуация, когда для извлекаемого из архива фай-
ла в том каталоге, куда он должен быть помещен, имеется файл с тем же именем, но файл в
архиве имеет более позднюю дату последней модификации, чем файл с тем же именем на
диске: извлечение нового файла Ч ситуация, когда для извлекаемого из архива файла в
том каталоге, куда он должен быть помещен, нет файла с тем же именем; запрос Ч запрос-
предупреждение, делаемый перед "затиранием" файла на диске.
|