0

有一个客户要求创建一个 zip,该 zip 包含放置在树状结构文件夹中的多个文件。它最多包含 150 个文件。当这些文件在内存流中超过大约 160MB 时,将引发 OutOfMemoryException。

  1. 项目清单
  2. 是否有配置来增加分配给此操作的内存?
  3. 还有其他替代方法来解决这个问题吗?

示例代码

MemoryStream memStream = new MemoryStream();
using (var zipStream = new ZipOutputStream(memStream))
{
 foreach (FileModel fileToBeAddedInZip in listOfFiles)
 {
  byte[] fileBytes;
  fileBytes = //Read the file from DB

  ZipEntry fileEntry = null;
  fileEntry = new ZipEntry(fileToBeAddedInZip.fileName)
   {
      Size = fileBytes.Length
   };

  zipStream.PutNextEntry(fileEntry);
  zipStream.Write(fileBytes, 0, fileBytes.Length);
 }

}
zipStream.Flush();
zipStream.Close();
4

0 回答 0