Архивация файлов из подкаталогов
Запись от Базаров размещена 13.01.2015 в 02:34
Очень удобной возможностью программ PKZIP и ARJ является архивация (упаковка) файлов из подкаталогов указанного каталога. Эта возможность задается с помощью указания следующих режимов:
При указании этих режимов программы архивации ищут архивируемые файлы не только в каталогах, указанных в команде, но и во всех подкаталогах этих каталогов. Здесь под термином "все подкаталоги" понимаются не только подкаталоги, непосредственно входящие в указанные каталоги (т.е. подкаталоги первого уровня), но и подкаталоги этих подкаталогов (т.е. подкаталоги второго уровня), и т.д., т.е. подкаталоги всех уровней вложенности. При этом в архиве сохраняется информация о пути к архивированным файлам.
Извлечение файлов в подкаталоги
При извлечении файлов из архива можно выводить файлы не в один каталог, а в соответствующие подкаталоги указанного в команде каталога (если такие подкаталоги не существуют, то они создаются). Для этого при извлечении файлов необходимо для программы ARJ использовать команду Х (а не Е), а для программы PKUNZIP - режим -D.
Замечание. Программы PKZIP и ARJ по-разному записывают в архиве пути к архивируемым файлам, если в команде запрошена архивация файлов не из текущего каталога. Например, при выполнении команд
для файла C:\DOC\TEST.TXT программами архивации будут запомнены следующие пути:
Чтобы не запутаться, целесообразно при архивации файлов из всех подкаталогов некоторого каталога сделать этот каталог текущим.
Пусть, например, дерево каталогов на диске С: имеет следующий вид:
Если текущий каталог - \DOC, то при выполнении команд
в архивы A:DOC.ZIP и A:DOC.ARJ будут добавляться файлы с расширением имени.ТХТ из каталогов:
то все файлы из каталогов C:\DOC, C:\DOC\LETTERS, C:\DOC\PAPERS, C:\DOC\PAPERS\ARCHIVE и C:\DOC\PAPERS\DRAFT будут извлечены в каталог C:\USER. Таким образом, файлы из разных каталогов будут "свалены в одну кучу". Заметим, что если бы каталога C:\USER не существовало, программа PKUNZIP отказалась бы работать, а программа ARJ выдала бы запрос на создание нового каталога.
А если выполнить любую из команд
то на диске С: будет создан каталог C:\WORK и сохраненные в архиве файлы будут извлечены в соответствующие подкаталоги этого каталога. Таким образом, структура каталогов на диске С: будет следующей
В каталоге WORK будут находится копии файлов из каталога DOC, а в подкаталогах LETTERS, PAPERS, ARCHIVE и DRAFT каталога WORK - копии файлов из соответствующих подкаталогов каталога DOC.
Замечание. Программа ARJ перед созданием каждого каталога выводит запрос "Create directory? [Y/N/A/Q]". На этот вопрос целесообразно ответить А - (Always, т.е. всегда). А еще лучше при вызове программы ARJ задать режим -JYC, чтобы этот запрос вообще не выводился.
При указании этих режимов программы архивации ищут архивируемые файлы не только в каталогах, указанных в команде, но и во всех подкаталогах этих каталогов. Здесь под термином "все подкаталоги" понимаются не только подкаталоги, непосредственно входящие в указанные каталоги (т.е. подкаталоги первого уровня), но и подкаталоги этих подкаталогов (т.е. подкаталоги второго уровня), и т.д., т.е. подкаталоги всех уровней вложенности. При этом в архиве сохраняется информация о пути к архивированным файлам.
Извлечение файлов в подкаталоги
При извлечении файлов из архива можно выводить файлы не в один каталог, а в соответствующие подкаталоги указанного в команде каталога (если такие подкаталоги не существуют, то они создаются). Для этого при извлечении файлов необходимо для программы ARJ использовать команду Х (а не Е), а для программы PKUNZIP - режим -D.
Замечание. Программы PKZIP и ARJ по-разному записывают в архиве пути к архивируемым файлам, если в команде запрошена архивация файлов не из текущего каталога. Например, при выполнении команд
для файла C:\DOC\TEST.TXT программами архивации будут запомнены следующие пути:
Чтобы не запутаться, целесообразно при архивации файлов из всех подкаталогов некоторого каталога сделать этот каталог текущим.
Пусть, например, дерево каталогов на диске С: имеет следующий вид:
Если текущий каталог - \DOC, то при выполнении команд
в архивы A:DOC.ZIP и A:DOC.ARJ будут добавляться файлы с расширением имени.ТХТ из каталогов:
C:\DOCПри этом в архивные файлы будут записываться пути к исходным файлам от каталога C:\DOC. Если выполнить любую из команд
C:\DOC\LETTERS
C:\DOC\PAPERS
C:\DOC\PAPERS\ARCHIVE
C:\DOC\PAPERS\DRAFT
то все файлы из каталогов C:\DOC, C:\DOC\LETTERS, C:\DOC\PAPERS, C:\DOC\PAPERS\ARCHIVE и C:\DOC\PAPERS\DRAFT будут извлечены в каталог C:\USER. Таким образом, файлы из разных каталогов будут "свалены в одну кучу". Заметим, что если бы каталога C:\USER не существовало, программа PKUNZIP отказалась бы работать, а программа ARJ выдала бы запрос на создание нового каталога.
А если выполнить любую из команд
то на диске С: будет создан каталог C:\WORK и сохраненные в архиве файлы будут извлечены в соответствующие подкаталоги этого каталога. Таким образом, структура каталогов на диске С: будет следующей
В каталоге WORK будут находится копии файлов из каталога DOC, а в подкаталогах LETTERS, PAPERS, ARCHIVE и DRAFT каталога WORK - копии файлов из соответствующих подкаталогов каталога DOC.
Замечание. Программа ARJ перед созданием каждого каталога выводит запрос "Create directory? [Y/N/A/Q]". На этот вопрос целесообразно ответить А - (Always, т.е. всегда). А еще лучше при вызове программы ARJ задать режим -JYC, чтобы этот запрос вообще не выводился.
Всего комментариев 0