Как записать поток памяти в ZipFile - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть почтовый файл. Я хочу открыть его с помощью SharpZipLib и добавить новый ZipEntry, который будет создан в памяти. Я новичок в SharpZipLib. Я очень много гуглил, но не смог найти подобную проблему.

Мой пример кода:

public Stream GetNewZipFileStream(string zipFilePath)
{
   byte[] zipFileBytes = null;
   zipFileBytes = ReadFileBytes(zipFilePath);
   var zipFileMemoryStream = new MemoryStream(zipFileBytes);

   ZipOutputStream zipOutStream = new ZipOutputStream(zipFileMemoryStream);

   var newEntry = new ZipEntry("NewFile.txt");
   zipOutStream.PutNextEntry(newEntry);

   var newFileMemoryStream = MakeOnTheFlyStream();
   StreamUtils.Copy(newFileMemoryStream , zipOutStream, new byte[4096]);

   zipOutStream.CloseEntry();
   newFileMemoryStream.Close();
   zipOutStream.IsStreamOwner = false;
   zipOutStream.Close();
   newFileMemoryStream.Position = 0;
   return newFileMemoryStream;
}

ReadFileBytes и MakeOnTheFlyStream - мои методы.

...