c#压缩文件系统内存不足

时间:2018-03-15 10:37:27

标签: c# compression out-of-memory

我正在开发一个压缩某些文件的服务,而且我一直在对服务进行测试,并且它在更大的文件中遇到了重大故障。我使用带有6GB的outlook文件进行测试,压缩500Mb后出现内存不足错误。

这是我的代码:

using (FileStream zipToOpen = new FileStream(@dir + ZipName, FileMode.Open))
{
    using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
    {
        foreach (string file in files)
        {
            if (File.GetCreationTime(@dir + file).AddSeconds(FileAge) < DateTime.Now)
            {
                ZipArchiveEntry fileEntry = archive.CreateEntry(file);
                using (BinaryWriter writer = new BinaryWriter(fileEntry.Open()))
                {
                    using (FileStream sr = new FileStream(@dir + file, FileMode.Open, FileAccess.Read))
                    {
                        byte[] block = new byte[1024];
                        int bytesRead = 0;
                        while ((bytesRead = sr.Read(block,0, block.Length)) >0)
                        {
                            writer.Write(block, 0, bytesRead);
                        }
                    }
                }
                File.Delete(@dir + file);
            }
        }
    }
}

任何想法我怎么能解决它? 提前谢谢

0 个答案:

没有答案