Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Zip


Автор: vitaly1979 30.6.2006, 21:49
Подскажите как заархивировать файл в папке my, 
а точнее в любой другой директории, архив должен лежать в той же папке.
У меня получается что внутри архива папка my и в ней архив
Код

use Archive::Zip qw(:ERROR_CODES :CONSTANTS);

$zip=Archive::Zip->new();

$nfm=$zip->addFile("my/sss.txt");

if($nfm){print "addFile - $nf\n";}

$zr=$zip->writeToFileNamed("my/my_perl.zip");

if($zr==AZ_OK){print "writeToFileNamed - AZ_OK\n";}


и еще, как можно в памяти сжать данные из буфера и записать сразу в зип?

 

Автор: kostofffan 3.7.2006, 10:59
По поводу папки в архиве, попробуй сделать chdir('my').
А на счёт архивация из буфера - там есть какая-то функция в модуле, через которую можно писать непосредственно в архив из проги, а степень сжатия задаётся тоже функцией из модуля. Я такое делал, только не помню названий функций и нет доступа к мануалу.

Добавлено @ 11:04 
... папка создаётся из-за writeToFileNamed("my/my.zip").
Нужно просто writeToFileNamed("my.zip").
Но это по-моему ))) 

Автор: vitaly1979 4.7.2006, 05:13
kostofffan,  проблема решилась 2-мя параметрами addFile
пока обошелся без этой неизвестной функции 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)