2016-07-28 16 views
1

私はディレクトリを圧縮するアプリケーションを持っていますが、今日は例外があり、ログをチェックしたときに〜550mbというこのディレクトリのためにシステムにメモリが不足していることが判明しました。だから私の質問は:これを回避する方法がある、または私のアプリケーションがより大きなサイズのディレクトリで動作することができますか?ここで大きなファイルを圧縮するときにシステムをメモリ不足例外を修正する方法

ディレクトリをzip圧縮コードです:

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ビットモードでアプリケーションを再構築することができます。これはおそらくあなたが経験しているメモリの上限を取り除くでしょう。

関連する問題