Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Tar.pm - краткая справка по модулю |
Автор: Alex 17.12.2004, 23:48 | ||||
Tar.pm - модуль для работы с tar архивами. Работает под Linux, Solaris, Windows. Насчет соляриса не знаю, а под Win и Linux он действительно работает ![]() Модуль весьма небольшой, не требует предварительной инсталляции и его можно подключать используя require. Теперь зархивируем чего-нибудь! Для этого напишем такой скриптик: Архивация:
В общем то и все. В результате выполнения сценария вы получите файлик files.tar, в котором будут находиться файлы: file1, file2, file3 Метод add_files(@file_names) - должен получить получить список файлов, и их он помещает в архив, который хранится в памяти. Ну а метод write('file.tar') записывает архив, содержащийся в памяти, непосредственно в файл file.tar, т.е. наш архивчик теперь хранится не только в памяти, но и на диске, чего, собственно, мы и хотели. Думаю, стоит про метод write(), сказать подробнее. Его синтаксис: write('file.tar',$compressed) - первый параметр, это имя файла, в который мы и запишем наш архив. Возможно некоторых это и удивит, но этот параметр необязателен, можно его и опустить, в тако случае, наш архив возвращается как строковая переменная, которую можно будет применить по своему усмотрению. Второй параметр $compressed - тоже необязательный. Если он будет 'true', то будет осуществлено сжатие архива. Тут стоит быть осторожным, т.к. для включения этой опции необходимо чтоб у вас был инсталлирован модуль Zlib.pm (пакет Compress::Zlib ), если его не будет, а у вас будет включена компрессия, то Tar.pm будет ругаться. Теперь займемся разархивацией: Разархивация:
В результате выполнения сценария мы получим то, что и хотели получить: помимо files.tar у нас будут иметься и file1, file2 и т.д., т.е. содержимое архива. read('files.tar',$compressed) - первый параметр имя файла, второй опция копрессии (необязательный параметр), о компрессии (сжатии) я говорил выше. В результате выполнения этого метода наш архив files.tar считывается в память. list_files() - этот метод возвращает нам список имен файлов, содержащихся в архиве, который, в свою очередь, содержится в памяти. extract(@files) - сей метод получает список имен файлов и занимается их разархивацией. Если необходимо, то он создает субдиректории (например, если имя файла было 'myfiles/file1', то будет создана директория myfiles). Заметьте, что из архива необязательно извлекать все содержащиеся в нем файлы - можно и какой-нибудь определенный, например только file1. http://search.cpan.org/Catalog/Archiving_Compression_Conversion/ - А тут вы найдете все необходимое: модуль Tar.pm (Archive::Tar) о котором я разглагольствовал, а также множество других модулей, которые предназначены для работы с архивами (в том числе и для архива в ZIP формате) Информация подготовлена при помощи сайта: www.webscript.ru |