Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить имена файлов в архиве gz 
:(
    Опции темы
Nastya
Дата 4.4.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: нет
Всего: 44



Есть архив (для начала .gz в дальнейшем возможн опонадобится и tar.gz и может что еще)
Мне нужно 
1. оперделить является ли файл архивом
2. получить список файлов из него
3. соотвественно нужные файлы прочитать.

Я решила что нужно юзать Compress::Zlib - я ошиблась?
п. 1. думаю можно решить через open а вот что делать с п.2??

плиз помогите
 :(
P.S. Пытаюсь воскурить вот эту доку http://perldoc.perl.org/Compress/Zlib.html может кто посоветует лучше?


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
arto
Дата 4.4.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



gzip -- не архиватор, а компрессор. ваше желание не имеет смысла.
PM MAIL ICQ   Вверх
Nastya
Дата 4.4.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: нет
Всего: 44



мда, похоже надо юзать это http://search.cpan.org/~cmoore/Archive-Any.../Archive/Any.pm ушла эксперементировать smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
arto
Дата 4.4.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



может проще рассказать задачу?
PM MAIL ICQ   Вверх
NuINu
Дата 4.4.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 5
Всего: 6



насчет архива добавьте себе еще Archive::Tar
хотя я бы советовал все сделать внешними утилитами.

в частности file
понять архив ли это или нет, можно только после распаковки.(если не считать что еще можно по расширению, но это не то)

очень приличненько выглядит IO-Compress-Zlib

насчет ошиблась, вполне возможно, gzip отличается от zip(чем не знаю не изучал)
PM MAIL   Вверх
amg
Дата 4.4.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(Nastya @  4.4.2009,  14:27 Найти цитируемый пост)
1. оперделить является ли файл архивом
Если возможны разные архивы, то, очевидно, оптимальное решение предложил NuINu (Compress::Zlib понимает только gzip, Archive::Any - судя по описанию, tar.gz и zip). А еще часто встречаются bzip2, а также rar, 7z. К словам NuINu добавлю только, что вместо внешней команды file можно пользоваться соответствующим перл-интерфейсом File::LibMagic, либо, если библиотека libmagic не стоит, File::MMagic.
PM MAIL   Вверх
Nastya
Дата 7.4.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: нет
Всего: 44



Спасибо огромное за ответы. Вот появилась возможност ьвренутся к этмоу скрипту. 
И так, я пока юзаю Archive::tar в дальнейшем хочу Archiv::Any только он почему-т оу меня стать никак не хочет :(

Но. все-таки с определением архив или нет 
Код

my $fileMagic = new File::MMagic;
my $res = $fileMagic->checktype_filename($archName);
if (not $res =~ /x\-gtar/ )
{
    # не архив
}


Как-то криво? Вам не кажется. :( просто если использывать Archive::Any И работать с разными типами архивов будет совсем криво ИМХО :(
Может можн опоизашнее?


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.