2017-03-16 1 views
-1


habe ich schrieb eine kleine Anwendung, die Dateien komprimiert und löscht sie DotNetZip Verwendung
erreicht Dateien auf 1,4 GB Reißverschlüsse
wahrscheinlich verlieren größer als diese es ist komprimiert Absturz
riesige Menge von Dateien (Zip-Ergebnis über 1 GB) Zipping

hier ist die Stacktrace ich habe hier

at Ionic.Zip.ZipFile.Save() 
    at Ionic.Zip.ZipFile.Save(String fileName) 
    at CustomFileCompressor.Program.ParallelCompress(List`1 relevantFiles, Int32 
zipYear, Int32 zipMonth, String outputFile) in d:\C#\CustomFileCompressor\Custom 
FileCompressor\CustomFileCompressor\Program.cs:line 135 
    at CustomFileCompressor.Program.Main(String[] args) in d:\C#\CustomFileCompre 
ssor\CustomFileCompressor\CustomFileCompressor\Program.cs:line 78 

wird der Kompressionscode, habe ich versucht, es zu 1 GB Zip-Dateien zu teilen
Linie ist die einem Aufruf der Funktion unter

line 78: ParallelCompress(FilesInMonth, zipYear, zipMonth, outFile); 


static void ParallelCompress(List<FileInfo> relevantFiles, int zipYear, int zipMonth, string outputFile) 
    { 
     List<string> filesToZip = relevantFiles.Select(fi => fi.FullName).ToList(); 
     using (ZipFile zip = new ZipFile()) 
     { 
      string outputfile = string.Format(outputFile, zipYear, zipMonth); 
      zip.MaxOutputSegmentSize = 1024 * 1024; 
      zip.AddFiles(filesToZip, true, ""); 

      zip.Save(outputfile); 
     } 
    } 
+0

Umm ... es sieht so aus, als gäbe es einige Informationen vom Anfang des Stack-Trace fehlt. –

+0

Das Abschneiden der Ausnahme entfernt den nützlichen Teil des Stack-Trace, weißt du? – TZHX

+0

das ist die Stack-Trace, ist es nicht genug? 'catch (Exception ex) {Console.WriteLine (ex.StackTrace)}' –

Antwort

0

Ausgabe
gelöst offenbar eine Konfiguration
nachdem ich fehlte Zugabe

zip.UseZip64WhenSaving = Zip64Option.Always; 

die Funktion der unten Ändern:

static void ParallelCompress(List<FileInfo> relevantFiles, int zipYear, int zipMonth, string outputFile) 
    { 
     List<string> filesToZip = relevantFiles.Select(fi => fi.FullName).ToList(); 
     using (ZipFile zip = new ZipFile()) 
     { 
      string outputfile = string.Format(outputFile, zipYear, zipMonth); 
      zip.ParallelDeflateThreshold = 0; 
      zip.UseZip64WhenSaving = Zip64Option.Always; 
      zip.MaxOutputSegmentSize = 1024 * 1024 * 1024; 
      zip.AddFiles(filesToZip, true, ""); 

      zip.Save(outputfile); 
     } 
    } 

löste es das Zipping
danke für die nützlichen Kommentare

Verwandte Themen