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