Библиотека DotNetZip читает из одного почтового индекса в другой - PullRequest
3 голосов
/ 29 января 2012

Использование библиотеки DotNetZip (http://dotnetzip.codeplex.com/) есть ли способ переместить файлы из одного zip-файла в другой без предварительного извлечения этого файла на диск? Может быть, извлечь в поток, а затем обновить в другой zip-файл из этого же потока?

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

1 Ответ

3 голосов
/ 29 января 2012

Да, вы должны быть в состоянии сделать что-то вроде:

var ms = new MemoryStream();

using (ZipFile zip = ZipFile.Read(sourceZipFile))
{
    zip.Extract("NameOfEntryInArchive.doc", ms);
}

ms.Seek(0);

using (ZipFile zip = new ZipFile())
{
    zip.AddEntry("NameOfEntryInArchive.doc", ms);
    zip.Save(zipToCreate);
}

(смотрите как псевдокод, поскольку у меня не было возможности компилировать)добавить к этому ваше дешифрование / шифрование, но эти вызовы одинаково просты.

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