Ich möchte gerne ein komplettes Verzeichnis inkl. Unterordnern und Dateien in eine ZIP-Datei schreiben. Dabei muss auf jeden Fall die Struktur erhalten bleiben. Das Ganze unter .NET und möglichst ohne Zusatzkomponenten (zumindest dürfen die nix kosten).
Ich suche schon länger danach finde aber bislang nix passendes entweder fehlen mir die Unterordner, Dateien oder die Beispiele sind nicht mehr kompilierbar.
Hier das Beispiel (hab die Kommentare und die meißten optionalen sachen entfernt):
using System; using System.IO; using ICSharpCode.SharpZipLib.Core; using ICSharpCode.SharpZipLib.Zip;
// Compresses the files in the nominated folder, and creates a zip file on disk named as outPathname. public void CreateSample(string outPathname, string password, string folderName) {
FileStream fsOut = File.Create(outPathname); ZipOutputStream zipStream = new ZipOutputStream(fsOut);
zipStream.SetLevel(3); //0-9, 9 being the highest level of compression
foreach (string filename in Directory.GetFiles(folderName)) { FileInfo fi = new FileInfo(filename); string entryName = ZipEntry.CleanName(filename); ZipEntry newEntry = new ZipEntry(entryName);
Danke für deine Antwort. Das Beispiel kenn ich bereits von der "Hersteller-Seite". Diese Version hat nur den Nachteil, dass sie nicht alle Unterordner berücksichtigt, sondern nur das Haupt-VZ und nicht die unterordner... :(
Du musste mit "new ZipEntry(relativePath);" die Unterverzeichnisse anlegen und den Dateien-Namen den relativen Pfad vorranstellen. Hab nen guten Artikel gefunden den ich gleich poste.