我在Unity3d项目中使用dotnetzip来压缩/解压缩文件。我使用类似下面的代码来压缩一些部分zip文件。如果文件很小,一切都按预期工作。但如果这些文件很大(每个文件大约100mb),那么Unity应用程序(exe)就会停止响应。我没有得到任何错误。但我认为这是由于内存问题,因为如果文件很小,它就可以工作 你能告诉我如何解决这个问题。
String[] filenames = { "ReadMe.txt", "c:\\data\\ABC_ExportContent.zip.001", "c:\\data\\ABC_ExportContent.zip.002", "c:\\data\\ABC_ExportContent.zip.003"};
using (ZipFile zip = new ZipFile())
{
zip.AddFiles(filenames);
zip.Save("Archive.zip");
}
更新 - 今天我在打开的任务管理器中对此进行了测试,由于CPU使用率达到100%,应用程序无法响应。正如我猜测的那样,实际上并不是因为记忆。 请让我知道如何克服这个问题。
更新2 - 由于我找不到解决方案,所以决定转移到SharpZipLib,到目前为止似乎做得很好。
答案 0 :(得分:0)
我们通过使用SharpZipLib而不是dotnetzip来解决这个问题。