Создание ZIP-файла размером более 150 МБ создает исключение OutOfMemoryException C# - PullRequest
0 голосов
/ 27 января 2020

Требуется клиент для создания zip-файла, состоящего из нескольких файлов, помещенных в древовидные структурированные папки. Максимально содержит до 150 файлов. Когда эти файлы превышают приблизительно 160 МБ в потоке памяти, генерируется исключение 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();
...