2016-07-28 31 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位模式重建應用程序。這可能會刪除您遇到的內存限制。

相關問題