在以下代码中,我不断收到一个非常烦人的 OutOfMemory 异常。
我正在压缩很多小文件(PDF,每个大约 1.5mb)。
起初,我在压缩 25 个文件后遇到了异常,这看起来不像是一个庞大的档案。
设置 ZipEntry 的大小以某种方式有所帮助,因为现在我设法压缩了多达 110 个文件(我正在 Visual Studio 下调试)
这是我的代码,可能有问题。
任何帮助将不胜感激。
谢谢
public static MemoryStream Zip(Dictionary<string, byte[]> files)
{
var outputMemStream = new MemoryStream();
var zipStream = new ZipOutputStream(outputMemStream);
zipStream.SetLevel(9);
foreach (var file in files)
{
zipStream.PutNextEntry(new ZipEntry(file.Key.FmtValidFileName())
{
Size = file.Value.Length
});
zipStream.Write(file.Value, 0, file.Value.Length);
zipStream.Flush();
}
zipStream.Finish();
outputMemStream.Position = 0;
return outputMemStream;
}