Следующий код хорошо работает с небольшими файлами, такими как 100 МБ, но он выдает System.OutOfMemoryException
для больших файлов, таких как 400 МБ.Я использую NotNetZip как dll, чтобы получить файл в формате zip.
Это мой код:
string pathGetDoc = pathDocs + "\\" + informe.NickName + "\\" + getMesActual() + "\\" + informe.Name;
string fileName = informe.Name;
System.Net.WebClient wc = new System.Net.WebClient();
wc.OpenRead(pathGetDoc);
int bytes_total = Convert.ToInt32(wc.ResponseHeaders["Content-Length"].ToString());
if(bytes_total >= 100000000)
{
using (ZipFile zip = new ZipFile())
{
zip.AddFile(pathGetDoc, fileName);
zip.CompressionMethod = CompressionMethod.BZip2;
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
using (MemoryStream memoryStream = new MemoryStream())
{
zip.Save(memoryStream);
return File(memoryStream.ToArray(), "application/zip", "z.zip");
}
}
}
Как вы можете видеть, у меня есть IF, чтобы проверить размер файла, это работает хорошо, но когда процесс идет, чтобы сохранить файл .zip, у меня появляется ошибка System.OutOfMemoryException