2017-02-27 3 views
5

In meiner Anwendung habe ich eine Klasse mit Zip-Archiv mit System.IO.Compression.ZipArchive manipulieren. Jetzt möchte ich die Einträge des Archivs in Datei speichern. Wie kann ich das machen? Ich weiß, ich kann ein Stream mit Archiv assoziieren, aber in meinem Fall das Archiv w/o-Streams erzeugt und ich kann nicht den Code ändern:ZipArchiv in Datei speichern

var archive = ZipFile.Open(fileName, ZipArchiveMode.Create); 
// add entries 
// how can I save it to file now? 
+1

https://msdn.microsoft.com/en-us/library/hh485720(v=vs.110).aspx – Hackerman

+0

Bitte überprüfen Sie diese Antwort: [stackoverflow] (http://Stackoverflow.com/a/12670368/6340841) –

+0

Danke Jungs für die Antworten, aber das ist nicht was ich brauche. Wie gesagt, ich benutze 'System.IO.Compression.ZipArchive' und kann es nicht für eine andere Bibliothek ändern. – folibis

Antwort

3

Sie sind bereits ‚es in einer Datei speichern‘, die ein angezeigt von fileName.

Um sicherzustellen, dass alles geschrieben und gespült, verwenden Sie ein using:

using (var archive = ZipFile.Open(fileName, ZipArchiveMode.Create)) 
{ 
    // add entries 
    .... 

} // here it is saved and closed 
+0

Danke, @Henk Holterman, du hast Recht, ich habe bemerkt, dass dieser Code eine Datei erstellt. Leider ist es leer, obwohl ich mehrere 'ZipArchiveEntry'-Elemente hinzufüge. – folibis

+0

Dann ist etwas anderes falsch, erstellen Sie ein [MCVE]. –

+0

Es ist in Ordnung, ich habe einen Weg gefunden, das zu tun. In meinem Code habe ich 'using' nicht benutzt, also sieht es so aus, als ob diese Datei gerade geöffnet geblieben wäre. Ich habe 'archive.Dispose()' in meinem Klassen-Destruktor hinzugefügt und jetzt funktioniert es gut, Archiv erstellt wie erwartet. – folibis