2016-07-28 176 views
1

所以我有一个应用程序,拉链目录,它的工作原理,除了今天我得到一个异常,当我检查日志事实证明,它得到了一个系统内存异常,因为这个目录是〜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); 
     } 
} 
+0

您是否试过在64位模式下构建应用程序? – Baldrick

+0

它的工作! :D我只需要检查它是否可以在服务器上工作。谢谢! – YMIFrozen

回答

1

这听起来像ZipArchive库,拉拉链时可能存储在内存中的所有临时数据的限制。

可能无法解决内存使用率过高的问题,但要解决此问题,可以使用64位模式重建应用程序。这可能会删除您遇到的内存限制。

相关问题