Как добавить zip-файл в zip-файл с помощью C # и DotNetZip

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

using (ZipFile _mainZip = new ZipFile())
{
  using (ZipFile _internalZip = new ZipFile())
  {
    ..add stuff to the internal zip..
    MemoryStream _myMemoryStream = new MemoryStream();
    _internalZip.Save(_myMemoryStream);
    _mainZip.AddEntry("myTitle.zip", _myMemoryStream);
  }
}
_mainZip.Save("myZip.zip");

person Corey Burnett    schedule 11.06.2013    source источник


Ответы (1)


Возможно, позиция MemoryStream находится в конце потока.
Вы можете попробовать установить его в начало:

_myMemoryStream.Position = 0;

Это может сработать.

person Jens Granlund    schedule 11.06.2013