2016-08-25 7 views
0

Irgendwie erstellt meine Konsole Anwendung leere (0 Byte) Zip-Dateien während der Ausführung. Aber wenn ich einen Haltepunkt setze und F10 verwende, um die Verpackungsfunktion zu durchlaufen, wird Zip normalerweise erstellt.Konsole Anwendung erstellt leere Zip-Dateien

Dieses Verhalten ist das gleiche auf zwei Computern, ich habe bereits versucht, mit DotNetZip und SharpZipLib ohne Wirkung zu ziehen.

Die Zuziehen Funktion (mit System.IO.Packaging) ist folgende:

private static void CreateModVersionZip(string path, string zipname) 
{ 
    using (Package zip = System.IO.Packaging.Package.Open(zipname, FileMode.OpenOrCreate)) 
    { 
     string destFilename = ".\\mods\\" + Path.GetFileName(path); 
     Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative)); 
     if (zip.PartExists(uri)) 
     { 
      zip.DeletePart(uri); 
     } 
     PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal); 
     using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
     { 
      using (Stream dest = part.GetStream()) 
      { 
       CopyStream(fileStream, dest); 
      } 
     } 
    } 
} 

Wie es richtig funktioniert?

Ich kann Zipping Snippets für SharpZipLib und DotNetZip bereitstellen, wenn Sie sie benötigen.

+0

Versuchen Sie, eine Datei oder ein Verzeichnis zu komprimieren? –

+0

Was genau macht 'CopyStream'? Werden die Ströme gespült? – ArgusMagnus

+0

@ConnorWright Ich versuche, eine .jar-Datei zu komprimieren –

Antwort

0

Nun, es gibt kein Problem in meinem Code, ich fand mein Problem an einem anderen Ort, wo ich die Datei an den FTP senden. Ich habe das Snippet von CodeProject verwendet, und es sieht so aus, als hätte der Autor einen kleinen Fehler beim Öffnen der Datei (die Methode hat die Datei neu erstellt, anstatt sie zu öffnen).

Verwandte Themen