Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_13_14.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
278.02 Кб
Скачать

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

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

PKZIP –режим –rp

ARJ — режим -r

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

Извлечение файлов в подкаталоги.

При извлечении файлов из ар­хива можно выводить файлы не в один каталог, а в соответствующие под­каталоги указанного в команде каталога (если такие подкаталоги не суще­ствуют, то они создаются). Для этого при извлечении файлов необходимо для программы ARJ использовать команду X (а не Е), а для программы PKUNZIP — режим -D.

Замечание. Программы PKZIP и ARJ по-разному записывают в архиве пути к архивируемым файлам, если в команде запрошена архивация файлов не из те­кущего каталога. Например, при выполнении команд

pkzip –rp a:archive c:\doc\*.*

arj -r a:archive c:\doc\*.*

для файла C:\DOC\TEST.TXT программами архивации будут запомнены следующие пути:

PKZIP — TEST.TXT

ARJ — DOC\TEST.TXT

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

Пусть, например, дерево каталогов на диске С: имеет следующий вид:

Если текущий каталог - DOC\, то при выполнении команд

txt txt

pkzip —u —rp a:doc *.txt

arj u -r a:doc *.txt

в архивы A:DOC.ZIP и A:DOC.ARJ будут добавляться файлы с расширением имени .ТХТ из каталогов:

С:\DOC

C:\DOC\LETTERS

C:\DOC\PAPERS

С:\DOC\PAPERS\ARCHIVE

С:\DOC\PAPERS\DRAFT

При этом в архивные файлы будут записываться пути к исходным файлам от каталога C:\DOC.

Если выполнить любую из команд:

pkunzip arj e

pkunzip а:\archive c:\user\

arj e а:\archive с:\user\

то все файлы из каталогов С:\DOC, С:\DOC\LETTERS, С:\DOC\PAPERS, C:\DOC\PAPERS\ARCHIVE и C:\DOC\PAPERS\DRAFT будут извлечены в каталог C:\USER. Таким образом, файлы из разных каталогов будут «свалены в одну кучу». Заметим, что если бы каталога C:\USER не существовало, программа PKUNZIP отказалась бы работать, а программа ARJ выдала бы запрос на соз­дание нового каталога.

А если выполнить любую из команд:

pkunzip –d а:\archive c:\work\

arj x а:\archive c:\work\

то на диске С: будет создан каталог C:\WORK и сохраненные в архиве файлы будут извлечены в соответствующие подкаталоги этого каталога. Таким обра­зом, структура каталогов на диске С: будет следующей

В каталоге WORK будут находиться копии файлов из каталога DOC, а в подкаталогах LETTERS, PAPERS, ARCHIVE и DRAFT каталога WORK — ко­пии файлов из соответствующих подкаталогов каталога DOC.

Замечание. Программа ARJ перед созданием каждого каталога выводит запрос «Create directory? [Y/N/A/Q]». На этот вопрос целесообразно ответить (A) — (Always, т.е. всегда). А еще лучше при вызове программы ARJ задать режим -JYC, чтобы этот запрос вообще не выводился.