Как записать поток памяти в ZipFile

У меня есть zip-файл. Я хочу открыть его с помощью 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 - мои методы.


person Mohammad Ali Taqvazadeh    schedule 04.11.2019    source источник
comment
Возможный дубликат stackoverflow .com/questions/1356003/   -  person user2932057    schedule 04.11.2019
comment
где твоя попытка? добавьте код, чтобы узнать, где и с какой проблемой вы сталкиваетесь?   -  person Mukul Keshari    schedule 04.11.2019
comment
@ user2932057 Нет, это другое. Мне нужно записать поток в ZipEntry и добавить его в существующий zip-файл.   -  person Mohammad Ali Taqvazadeh    schedule 04.11.2019
comment
Это то, что делает и этот другой вопрос.   -  person    schedule 04.11.2019
comment
@Amy Все эти решения добавляют новый файл с жесткого диска с указанием пути. Но я генерирую свой файловый поток с помощью MakeOnTheFlyStrem и не хочу сохранять его на жестком диске из соображений безопасности. Итак, у меня есть FileStream, и я хочу добавить его в ZipFile.   -  person Mohammad Ali Taqvazadeh    schedule 04.11.2019
comment
@MohammadAliTaqvazadeh Они открывают этот файл с жесткого диска... как поток. У вас уже есть поток. Так что пропустите ту часть, где они загружают файл.   -  person    schedule 04.11.2019
comment
@Amy Я попробовал это решение, но когда я открыл свой новый zip-файл, я получил эту ошибку: Архив либо в неизвестном формате или поврежден   -  person Mohammad Ali Taqvazadeh    schedule 04.11.2019
comment
Наконец я нашел подходящее решение: SharpZipLib - добавление ZipEntry в ZipFile вызывает исключение ZipException   -  person Mohammad Ali Taqvazadeh    schedule 04.11.2019