C# 如何将memorystream写入ZipFile

C# 如何将memorystream写入ZipFile,c#,sharpziplib,C#,Sharpziplib,我有一个zip文件。我想用SharpZipLib打开它,并在内存中创建一个新的ZipEntry。 我是夏普齐普利布的新手。我经常在谷歌上搜索,但没有找到类似的问题 我的示例代码是: public Stream GetNewZipFileStream(string zipFilePath) { byte[] zipFileBytes = null; zipFileBytes = ReadFileBytes(zipFilePath); var zipFileMemoryStream

我有一个zip文件。我想用SharpZipLib打开它,并在内存中创建一个新的ZipEntry。 我是夏普齐普利布的新手。我经常在谷歌上搜索,但没有找到类似的问题

我的示例代码是:

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
是我的方法。

可能重复您的尝试在哪里?添加一些代码以了解您在哪里遇到了什么问题?@user2932057不,这是不同的。我需要将一个流写入ZipEntry并将其添加到现有的zip文件中。这也是另一个问题正在做的。@Amy所有这些解决方案都使用路径从硬盘添加新文件。但是我使用
makeontheflystem
生成文件流,出于安全原因,我不想将其硬保存。所以我有一个文件流,我想把它添加到ZipFile中。