Добавить текстовый файл внутри Zip - PullRequest
1 голос
/ 02 июня 2010

У меня есть zip-файл внутри текстового файла (file.txt внутри file.zip), и я хотел бы добавить к этому файлу другой текстовый файл file.txt вне zip-файла. Как я могу это сделать? Есть ли решение?

Я пытался добавить параметры Append => 1 в IO :: Compress :: Zip, но файл внутри zip был перезаписан ..

use IO::Compress::Zip qw(zip $ZipError) ;

$filenameToZip = 'file.txt';
zip $filenameToZip => "file.zip",Append => 1
    or die "zip failed: $ZipError\n";

Нужно ли мне распаковывать zip-файл, добавлять / объединять два файла TXT и снова сжимать файл? Или есть лучшее решение?

1 Ответ

5 голосов
/ 02 июня 2010

Я бы рекомендовал использовать модуль Archive :: Zip вместо модуля более низкого уровня. Если вы не знаете иначе, я бы ожидал, что IO :: Compress :: Zip будет знать, как выполнять сжатие в стиле Zip, но не манипулировать файлом архива Zip.

Документация для IO :: Compress :: Zip гласит:

Этот модуль предоставляет интерфейс Perl, который позволяет записывать сжатые данные в формате zip в файлы или в буфер.

Основная цель этого модуля - предоставить потоковый доступ к записи в zip-файлы и буферы. Это не универсальный файловый архиватор. Если это то, что вы хотите, проверьте Архив :: Zip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...