Архиватор ZIP (работа 1)

Архиватор ZIP

План:

Введение

Архивный файл

Ключи и команды архиватора ZIP.

Архиватор ZIP for Windows

Заключение

Список используемой литературы

Введение: При эксплуатации компьютера по самым разным причинам возможны порча или потеря информации на магнитных дисках. Это может произойти из-за физической порчи магнитного диска, неправильной корректировки или случайного уничтожения файлов, разрушения информации компьютерным вирусом и т.д. Для того чтобы уменьшить потери в таких ситуациях, следует иметь архивные копии используемых файлов и систематически обновлять копии изменяемых файлов.

Для копирования файлов можно, разумеется, использовать команды COPY или XCOPY. Но, например для копирования файлов с жесткого диска емкостью 28 Мбайт необходимо 20 дискет стандартного формата (по 1.46 Мбайт). В таком большом количестве дискет даже разобраться довольно трудно, поэтому трудоемкость создания и обновления архива будет весьма значительной. Поэтому для создания архивов употребляются специализированные программы. Их можно разделить на два класса: программы упаковщики (архиваторы) и программы резервного копирования. В реферате будут рассмотрены только программы-упаковщики, так как ZIP относиться именно к ним.

Архивный файл.

Архивный файл представляет собой набор из одного или нескольких файлов, помещенных в сжатом виде в единый файл, из которого их можно при необходимости извлечь в первоначальном виде. Архивный файл содержит оглавление, позволяющее узнать, какие файлы содержаться в архиве. В оглавлении архива для каждого содержащегося в нем файла храниться следующая информация:

имя файла;

сведения о каталоге, в котором содержится файл;

дата и время последней модификации файла;

размер файла на диске и в архиве;

код циклического контроля для каждого файла, используемый для проверки целостности архива;

Определить с помощью какой программы был заархивирован

тот или другой архивный файл, можно при помощи расширения.

Например: game.rar – заархивирован при помощи архиватора RAR.

game.arj - заархивирован при помощи архиватора ARJ.

game.zip - заархивирован при помощи архиватора ZIP.

Невольно возникает вопрос, зачем столько архиваторов (а их гораздо больше) и все для одной лишь цели – сжать объем файла.

Разные программы отличаются форматом архивных файлов, скоростью работы, степенью сжатия файлов при помещении в архив, удобством использования.

Ключи и команды архиватора ZIP.

Существует два основных файла программы :

PKZIP- программа помещающая файлы в архив

PKUNZIP- программа извлекающая файлы из архива.

Программы PKZIP/PKUNZIP имеют большое количество функций, выбор нужных функций выполняется в командной строке при вызове программ. Задание функций программ PKZIP/PKUNZIP осуществляется только с помощью указания режимов. Режимы могут указываться в любом месте командной строки после имени программы, они задаются либо с предшествующим знаком “-”, либо с предшествующим знаком “/”.

Помещение файлов в архив.

При помещении файла в архив используется следующий формат:

PKZIP режимы имя архива (имена файлов)

Режимы- указываются с предшествующим знаком “-” или “/”, они задают или уточняют требуемые от программы архивации действия;

Имена файлов- задают файлы, включаемые в архив. При задании имен файлов можно использовать символы * и ?. Если имена файлов не заданы, то подразумевается все файлы из текущего каталога.

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

Пример:

game.* - означает что будут заархивированы все файлы с именем game (game.exe, game.sav, game.cfg)

ga*.sav – имеется ввиду файлы с первыми двумя буквами “ga” в имени файла и расширением sav. (game.sav, game01.sav, game02.sav).

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

Пример:

game.?a?- все файлы с именем game и расширением в котором в середине стоит буква “a” (game.sav, game.bat ...)

game???.*- все файлы с именем в котором первые четыре буквы game и любыми другими символами после четвертой буквы + любое расширение.

После ввода команды программы-упаковщики начинают выполнять запрошенные действия. На экране изображаются имена помещаемых в архив файлов. При сжатии каждого файла выводиться процент обработанной части файла. После окончания сжатия каждого файла напротив его имени сообщается о степени сжатия. Например, при упаковке файла pkzip.exe на экране появляется надпись:

Adding: PKZIP.EXE Deflating (36%), done.

Задание степени сжатия.

По умолчанию программа PKZIP обеспечивает достаточно большую скорость работы и близкую к максимальной степень сжатия. Но при желании можно получить максимальную (на несколько процентов большую) и наименьшую (быструю) степень сжатия. С ключом максимальной степени сжатия программа работает медленнее обычной, а при ключе наименьшей степени сжатия файлов наоборот, быстрее.

Ключи:

“-ex” – максимальная степень

“-en” – средняя (обычная) степень

“-es” – наименьшая степень

Режимы выбора архивируемых файлов.

Программа PKZIP имеет три основных режима помещения файлов в архив:

Add – добавление в архив всех файлов;

Update – добавление в архив новых файлов;

Freshen – добавление новых версий имеющихся в архиве

файлов.

Эти режимы имеют следующие особенности:

в режиме добавления (Add) в архивный файл добавляются все указанные в команде файлы;

в режиме добавления новых файлов (Update) в архивный файл добавляются те файлы, у которых либо нет копий в архиве, либо эти копии имеют более раннюю дату, чем у файла. Задание этого режима позволяет предотвратить затирание более новых версий в архиве;

в режиме обновления версий файлов (Freshen) в архив добавляются новые версии тех файлов, которые уже имеются в архиве. Иначе говоря, в архив добавляются те файлы, копии которых уже находятся в архиве, но имеют более раннюю дату, чем у соответствующего файла на диске. Этот режим позволяет добиться того, чтобы архивный файл содержал наиболее свежие версии своих файлов.

Задание этих режимов осуществляется следующим образом:

Add – по умолчанию (или “–а”)

Update – режим “-u”

Freshen – режим “-f”

Примеры:

Pkzip game — добавление в архивный файл game всех файлов из текущего каталога;

Pkzip –u a:myarc — обновление архивного файла a:myarc.zip. В архивный файл добавляются файлы из текущего каталога, однако если какой-либо файл уже имеется в архиве и дата копии файла в архиве более поздняя, чем у файла из текущего каталога, то такой файл не добавляется в архив, и в архиве сохраняется более поздняя версия файла;

Pkzip –f a:myarc b:\*.* — добавление в архив a:myarc новых версий файлов этого архива из корневого каталога диска В:

Пересылка файлов в архив

Очень часто требуется не копировать, а пересылать файлы в архив. Иначе говоря, те файлы, которые были успешно добавлены в архив, должны удаляться. Для пересылки используются следующие режимы:

PKZIP - режим –M (можно указывать совместно с режимами –a

–u –f)

Замечания:

Если при архивации файлов возникает ошибка, то исходные файлы не уничтожаются.

Использование пересылки файлов в архив позволяет существенно сократить место на диске, занимаемое файлами. Часто имеет смысл хранить редко употребляемые программы и данные в виде архивного файла, а при необходимости их использования – извлекать из архива.

Примеры:

Pkzip –m myarc — пересылка в архивный файл MAYARC.ZIP всех файлов из текущего каталога;

Pkzip –m –u docfiles *.doc a:\*.doc — пересылка в архивный файл docfiles.zip всех файлов с расширением .doc из текущего каталога и из корневого каталога на диске А: кроме тех, копий которых нет в архиве docfiles.zip.

Извлечение файлов из архива

Как упоминалось ранее, для извлечения файлов из архивов, созданных программой PKZIP, используется программа PKUNZIP.

Программа PKUNZIP имеет следующий формат вызова:

PKUNZIP режимы имя архива (имена файлов)

После ввода команды программы архивации начинают извлечение файлов из архива. На экране изображаются имена извлекаемых из архива файлов.

Режимы замещения существующих на диске файлов

При извлечении файлов из архива может возникнуть ситуация, когда в том каталоге, в который извлекается файл, уже имеется файл с таким же именем. По умолчанию программа PKUNZIP при этом выполняет следующие действия: на экран выводиться запрос:

PKUNZIP: (W18) Warning! PKUNZIP.EXE already exists. Overwrite (y/n/a/r)? (Файл существует. Перезаписать?)

При нажатии на одну из клавиш : Y — заместить имеющийся файл на диске, N — не извлекать файл из архива, A — всегда замещать имеющиеся на диске файлы(больше запросов не будет), R — присвоить извлекаемому из архива файлу другое имя.

Извлечение

Запрос

PKUNZIP

Всех файлов

Без запросов

С запросами

По умолчанию

Новых версий и новых файлов

Без запросов

С запросами

-N

Нет

Новых версий файлов

Без запросов

С запросами

-F

Нет

Новых файлов

Нет

Здесь извлечение новой версии файла – ситуация, когда для извлекаемого из архива файла в том каталоге, куда он должен быть помещен, имеется файл с тем же именем, но файл в архиве имеет более позднюю дату последней модификации, чем файл с тем же именем на диске; извлечение нового файла- ситуация, когда для извлекаемого из архива файла в том каталоге, куда он должен быть помещен, нет файла с тем же именем; запрос- запрос – предупреждение, делаемый перед “затиранием” файла на диске

Примеры:

Pkunzip a:archive –o — извлечение всех файлов из архива a:ARCHIVE.ZIP и помещение их в текущий каталог. Файлы на диске с тем же именем затираются без предупреждений.

Pkunzip a:archive – n — извлечение всех файлов из архива

a:archive.zip в текущий каталог. Если на диске имеется файл с тем же именем, что и в архиве, то файлы на диске с более ранней датой последней модификации затираются без предупреждения, а файлы с той же или более поздней датой остаются без изменений (извлечение соответствующих файлов из архива не проводиться);

Pkunzip a:archive –f обновление из архива a:archive.zip версий файла из текущего каталога. Из архива извлекаются только более свежие версии файлов, которые уже имеются в текущем каталоге. Никаких запросов при этом на экран не выводится, старые версии файлов затираются без предупреждения.

Архивация файлов из подкаталогов

Очень удобной возможностью программы PKZIP является архивация файлов из подкаталогов указанного каталога. Эта возможность задается с помощью указания следующего режима:

Pkzip -режим -rp

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

При извлечении файлов из архива можно выводить файлы не в один каталог, а в соответствующие подкаталоги указанного в команде каталога (если такие подкаталоги не существуют, то они создаются).

Просмотр оглавления архива

Одним из наиболее часто используемых режимов программ архивации является, естественно, просмотр оглавления архива. С помощью функций просмотра оглавления архива можно узнать, какие файлы содержаться в архиве и получить подробную информацию об этих файлах: в каком каталоге на диске находиться файл, каковы дата и время последней модификации файла, каков размер файла на диске и в архиве и т.д.

Формат команды:

Pkunzip –v имя-архива

Пример:

Pkunzip -v arhiv.zip

Приостановка выдачи результатов

Сама команда приостановки выдачи результатов нужна для того, чтобы успеть просмотреть подробнее те файлы, которые очень быстро проскакивают на экране. Т.е. при нахождении в архиве достаточно большого количества файлов они очень быстро мелькают в режиме просмотра (-v) для чего используется следующий формат команды: pkunzip -v имя-архива | more

Пример: pkunzip -v arhiv.zip | more

Результат:

Length Method Size Ratio Date Time CRC-32 Attr Name

------ ------ ----- ----- ---- ---- -------- ---- ----

23552 DeflatN 5170 79% 12-01-97 10:21 cdf2e30d --w- 12K.DOC

18432 DeflatN 3911 79% 10-01-98 16:43 d6e051c8 --w- F3~1.DOC

18432 DeflatN 3512 81% 23-09-97 19:59 5db4a587 --w- MINISTER.DOC

11264 DeflatN 2241 81% 26-01-98 15:40 eb9b0599 --w- RABOTA.DOC

23552 DeflatN 6683 72% 09-04-98 16:59 69d79c7d --w- PROT.XLS

22528 DeflatN 4195 82% 09-08-97 09:25 900ce70f --w- АКТПИР~1.DOC

12800 DeflatN 4557 65% 19-03-99 05:58 89c67d54 --w- БЕНЗИН.DOC

10752 DeflatN 2934 73% 13-08-96 08:09 0d3978e1 --w- ГРПЛ1Э~1.DOC

11776 DeflatN 3397 72% 25-09-96 13:30 733dfd93 --w- ГРФИН1~1.DOC

- Далее -- (после нажатия на клавишу следуют остальные файлы)

12288 DeflatN 3052 76% 18-11-96 20:10 a7369930 --w- ГРФИН2~1.DOC

18944 DeflatN 5224 73% 06-05-97 08:48 a2260dda --w- ПРЕДВА~2.DOC

14848 DeflatN 5384 64% 01-12-97 06:23 7cfa732d --w- РЕЕСТР~1.DOC

20480 DeflatN 7178 65% 25-11-97 07:23 b2ad1157 --w- РЕЕСТР~2.DOC

14336 DeflatN 3137 79% 10-01-98 13:02 bfefffbb --w- РЕСУРС~1.DOC

14336 DeflatN 3750 74% 18-11-96 20:44 f8d6cb4d --w- РС2ЭТ~1.DOC

11776 DeflatN 4070 66% 10-01-98 13:54 dfb5afaf --w- СВОДЗА~1.DOC

12288 DeflatN 6649 46% 10-01-98 16:18 30622f0d --w- СВОДЗА~2.DOC

52736 DeflatN 13320 75% 28-03-97 18:17 da25aab4 --w- СВОДКА.DOC

18432 DeflatN 3526 81% 29-10-97 07:07 f597bbb8 --w- СДЕЛСП~1.DOC

13312 DeflatN 3990 71% 30-08-96 09:20 f6aaa7a1 --w- СРАВНК~1.DOC

17920 DeflatN 3809 79% 30-08-96 09:22 bda7830a --w- СРАВНК~2.DOC

33280 DeflatN 8670 74% 28-03-97 18:17 ece864d5 --w- ИТОГ.XLS

30208 DeflatN 8957 71% 09-04-98 13:20 75d98848 --w- ИТОГСМ~1.XLS

27648 DeflatN 7570 73% 09-04-98 17:02 1545e024 --w- РЕЕСТР~1.XLS

------ ------ --- -------

465920 124886 74% 24

Length —размер исходного файла

Method — метод сжатия файла при помещении его в архив

Size — размер файла после сжатия

Ratio — процент места в архиве, сохраненного благодаря сжатию файла

Date — дата создания или последней модификации исходного файла

Time — время создания или последней модификации исходного файла

Crc-32— код циклического контроля файла

Attribute— атрибуты файла (s— системный, h— спрятанный, w— для чтения и записи, r— только для чтения, *— файл защищен паролем)

Name –имя файла.

При использовании для вывода оглавления режима “-vb” (а не –v) сведения о коде циклического контроля и атрибутах файла не выводятся, что оставляет больше места для вывода имени файла.

Сортировка информации о файлах

Программа PKUNZIP позволяет выводить оглавление архива в отсортированном виде. Наиболее часто используется вывод оглавления в алфавитном порядке. Для этого нужно указать режим -vn

Пример: pkunzip –vn arhiv.zip

Проверка целосности архивов

Для каждого файла из архива в оглавлении архива запоминается его код циклического контроля (СRC). Этот код – специальная функция всего содержимого файла, составленная таким образом, что изменить файл так, чтобы его код циклического контроля остался неизменным, практически невозможно.

Наличие кода циклического контроля позволяет проверить целостность архивного файла. При извлечении файлов из архива вычисляется код циклического контроля для каждого файла и сообщают пользователю, если этот код не совпадает с записанным в оглавлении архива. Проверить целостность архива можно с помощью команды тестирования:

Pkunzip –t имя-архива

Пример: pkunzip –t arhiv.zip

Результат:

Testing: TOOL.DOC OK

Testing: БЕНЗИН.DOC OK

Testing: WASH.DOC PKUNZIP: Warning! Fail fails CRC chek

Testing: ГРИН.DOC OK

Testing: ГРAФИН.DOC OK

PKZ ARHIV.IP has errors!

В этом примере сообщается, что файл WASH.DOC в архиве оказался испорченным.

Замечание: для файлов, зашифрованных при помещении в архив с помощью пароля, при проверке необходимо указать пароль (параметр –sпароль)

Восстановление поврежденных архивов

Хранение информации в архиве более надежно из-за того, что данные хранятся в сжатом виде, меньше вероятность их случайного повреждения, например из-за дефектов магнитного покрытия диска.

Но в некоторых случаях архивные файлы с большой вероятностью могут быть повреждены. Вот наиболее типичные из таких ситуаций:

запись архива на дефектную дискету или чтение его с такой дискеты;

передача архива по телефонной сети через модем

повреждения из-за воздействия вирусов, неосторожных действий пользователей, неправильно работающих программ и т.д.

Если программы PKZIP или PKUNZIP обнаруживают, что оглавление архива повреждено, они выводят на экран сообщение:

имя-архива: Error in ZIP, use PKZipFix

(ошибка в архиве, используйте программу PKZipFix)

Формат вызова: PKZIPFIX имя-архивного-файла

Эта программа создает в текущем каталоге архивный файл PKFIXED.ZIP , содержащий всю информацию, которую удалось восстановить из исходного архивного файла.

Проблема отключения питания во время архивации

Бывают ситуации, когда во время создания архива выключают питание, это опасно например тогда, когда исходный архивный файл уже был удален, а промежуточный файл еще не был записан на его место. В этом случае нужно найти временный файл (его имя такое же как и у исходного с расширением .!!!) и вручную скопировать его на место исходного архивного файла.

Защита файлов с помощью пароля

Защита паролем не дает чужим завладеть той информацией которую нужно скрыть.

Формат: PKZIP –режим –sпароль

Пароль- любая строка символов, не содержащая пробелов. Между паролем и следующими за ним в командной строке параметрами должен быть хотя бы один пробел.

Пример:

pkzip –sSecret arhiv — помещение в архивный файл arhiv.zip всех файлов текущего каталога с зашифровыванием их с помощью пароля Secret.

Pkunzip –sSecret arhiv.zip *.doc — извлечение в текущий каталог из архива всех содержащихся в нем файлов с расширением .doc с указанием пароля расшифровывания Secret.

Пропуск файлов при добавлении в архив

Иногда при добавлении файлов в архив требуется пропустить те или иные файлы. Например, при архивации файлов вряд ли целесообразно хранить в архиве файлы с расширениями .bak и .tmp. Их можно прогпустить при создании архива путем задания формата команды: -Химя-файла. При указании имени файла можно использовать символы * и ?. В командной строке можно задавать режим –Х несколько раз, чтобы исключить из обработки несколько файлов или групп файлов.

Пример: pkzip –x*.bak –x*.tmp arhiv —помещение в архивный файл всех файлов из текущего каталога кроме тех у которых расширения bak и tmp.

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

Удаление файлов из архива осуществляется следующей командой: pkzip –d имя-архива имена-файлов

Имена-файлов- обозначение файлов, можно использовать * и ?

Пример: pkzip –d arhiv *.txt —удаление всех файлов с расширением .ТХТ из архива ARHIV.ZIP

Выбор файлов по дате их изменения

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

Для архивации файлов созданных или измененных:

сегодня -t

в течение или после ЧЧ.ММ.ГГ -tММЧЧГГ

до ЧЧ.ММ.ГГ -ТММЧЧГГ

ЧЧ— число , ММ— номер месяца, ГГ— последние две цифры номера года

Примеры:

pkzip arhiv –t —помещение в архив всех файлов созданных или измененных в течение сегодняшнего дня

pkzip arhiv –T010199 –t060198 —помещение всех файлов в архив созданных или измененных в течение второй половины 1998г.

Архиватор ZIP for Windows

Так как ничто не стоит на месте, также и ZIP дополняется и совершенствуется, приобретая все более современные черты присущие программам нашего времени. С учетом глобального перехода на операционную систему WINDOWS создатели ZIP’a предложили также версию работающую под WINDOWS. Вот пример ее графического интерфейса:

Эта версия зарекомендовала себя как более удобная и современная. В принципе сама основа программы поменялась незначительно.

Заключение

В заключении хотелось бы отметить несколько интересных фактов. Например таких как при архивации зараженного вирусом файла это не избавляет ни компьютер ни файл от вируса, а даже способствует его распространению. И порой бывают случаи, что при успешном удалении вируса из системы, она вновь заражается из-за использования зараженной архивной версии какой либо программы. И конечно нельзя архиватором ZIP разархивировать архивные файлы другой программы-архиватора.

Список используемой литературы:

IBM PC для пользователя – Фигурнов Виктор Эвальдович ,Москва “ИНФРА-М” 1995г.