如何修复或绕过压缩大文件时出现的系统内存不足异常

本文关键字:系统 异常 内存不足 文件 何修复 压缩 | 更新日期: 2023-09-27 17:59:12

所以我有一个压缩目录的应用程序,它运行得很好,只是今天我遇到了一个异常,当我检查日志时,发现它出现了一个系统内存不足的异常,因为这个目录大约是550mb。所以我的问题是:有没有办法绕过这个问题,或者让我的应用程序能够处理更大的目录?

以下是压缩目录的代码:

using (FileStream zipToOpen = new FileStream(destdir1, FileMode.Open))
{
   using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
    {
      int ind = folder.LastIndexOf("''") + 1;
      string folderName = folder.Substring(ind, folder.Length - ind);
      ZipArchiveEntry readmeEntry;
      DirectoryInfo d = new DirectoryInfo(folder);
      FileInfo[] Files = d.GetFiles("*");
      foreach (FileInfo file in Files)
      {
        readmeEntry = archive.CreateEntryFromFile(folder + "''" + file.Name, folderName + "/" + file.Name);
      }
      DeleteDirectory(folder);
      }
}

如何修复或绕过压缩大文件时出现的系统内存不足异常

这听起来像是ZipArchive库的限制,它可能在压缩时将所有临时数据存储在内存中。

可能无法解决内存过度使用的问题,但要解决这个问题,可以在64位模式下重新构建应用程序。这可能会消除你正在经历的内存上限。