Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Zippen mit .NET-Boardmitteln: Möglichkeiten, Grenzen und Alternativen
ViperNeo
myCSharp.de - Member



Dabei seit:
Beiträge: 370
Herkunft: Darmstadt

Themenstarter:

Zippen mit .NET-Boardmitteln: Möglichkeiten, Grenzen und Alternativen

beantworten | zitieren | melden

Hallo Leute,

kann mir jemand auf die Sprünge helfen bezüglich der Generierung von ZIP Files? Ich möchte keine thirdparty lib nutzen sondern mich mal selber ranwagen. Gibt es bordmittel von c#?

danke!

grüße
viperneo
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1407

beantworten | zitieren | melden

Boardmittel gibt es zwar ein paar, aber kein zip. System.IO.Compression-Namespace

nur Gzip und Deflate. Guck dir mal die SharpZipLib an. da bekommst du den source mit und kannst dir den anschauen.

Gruß pdelvo
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

ab .NET Framework 3.0: ZipPackage Class
private Nachricht | Beiträge des Benutzers
278278
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: Brandenburg

ZipPackage - Leerzeichen im Dateinamen

beantworten | zitieren | melden

Gibt es einen Trick ZipPackage zu überreden, auch Dateipfade mit Leerzeichen zu verarbeiten.
Die Leerzeichen mit Unterstrichen zu ersetzen, ist ja nicht wirklich eine elegante Lösung.
SharpZipLib und Co. kann doch sowas. Da müsste das doch auch mit Net Boardmitteln möglich sein. Wenn Ihr mir auf die Sprünge helfen könnte wäre ich dankbar.
private Nachricht | Beiträge des Benutzers
DeZio
myCSharp.de - Member

Avatar #avatar-3334.png


Dabei seit:
Beiträge: 81

beantworten | zitieren | melden

Wo liegt denn das Problem SharpZipLib zu benutzen? Wenn es dir um das Know-How geht, dann solltest du dich mit der Spezifikation und Informationen zum Zip-Format vertraut machen - am besten natürlich auf Englisch.

Zip (file format)http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von DeZio am .
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von DeZio
Wo liegt denn das Problem SharpZipLib zu benutzen?
im Not-invented-here-Syndrom
private Nachricht | Beiträge des Benutzers
Blacal
myCSharp.de - Member



Dabei seit:
Beiträge: 392

beantworten | zitieren | melden

Hallo ViperNeo,

in Packet-Dateien mit .Net Standardmitteln habe ich einen Weg beschrieben, wie man Zip-Dateien mit den Framework-Bordmitteln machen kann (System.IO.Packaging). Aber Achtung: Nicht alle Zip-Dateien können dadurch gelesen werden, da dieser Weg die "Open Packaging Conventions" von Microsoft voraussetzt, die dem OpenXML-Zeugs entstammen.

Ansonsten würd ich auch die SharpZipLib empfelen, habe ich auch schon öfters verwendet und klappt problemlos.

Gruß
Roland
private Nachricht | Beiträge des Benutzers
278278
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: Brandenburg

beantworten | zitieren | melden

Zitat
im Not-invented-here-Syndrom

Häufig werden Boardmittel vermieden, weil der Entwickler sie nicht richtig verstanden hat. Meine Fragestellung zielt darauf ab, ob ich zu blöd bin, die Boardmittel zu verstehen.
Weil es mir schon eigenartig vorkommt, dass so was triviales nicht möglich ist.

Häufig sehe ich unübersichtliche Konstrukte oder erstelle selber welche, die man mit Standart Net-Mitteln mit einer Zeile lösen kann, Sie aber halt nicht kennt.

Also es ist nicht so, dass wenns nicht geht, ich SharpZipLib nehme, aber ich will meine Horizont etwas erweitern.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von 278278 am .
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo 278278,

vor Version 3.0 hat .NET sowieso nur Gzip untertützt. Aber GZIP != ZIP. GZip kann nur einzelne Datei komprimieren.

Mit Version 3.0 ist dann System.IO.Packaging hinzugekommen, aber mit den Einschränkungen, die Blacal genannt hat.

Das Framework kann zwar viel, und ich finde immer wieder was, wofür ich keine Unterstützung erwartet habe. Andersherum gibt aber eben auch ein paar weiße Flecken, wo man sie nicht erwartet.

herbivore
private Nachricht | Beiträge des Benutzers
0815Coder
myCSharp.de - Member



Dabei seit:
Beiträge: 770

beantworten | zitieren | melden

Hab schon mehrmals mit DotNetZip gearbeitet und gute Erfahrungen damit.
loop:
btst #6,$bfe001
bne.s loop
rts
private Nachricht | Beiträge des Benutzers
Marsti
myCSharp.de - Member



Dabei seit:
Beiträge: 124

beantworten | zitieren | melden

Ich würde auch eher zu DotNetZip greifen.

Die Nutzungsbedingungen von SharpZipLib sind mir suspekt bzw. nicht so einfach/deutlich, zumal DotNetZip recht einfach zu verwenden ist und AFAIK alles unterstützt was man braucht.
[offtopic]Warum sich System.IO.Packaging allerdings nur auf ZIP-Dateien wie die von OpenXML beschränkt erschließt sich mir nicht, schließlich muss dahinter ja auch ein (unzugänglicher) ZIP-Support liegen[/offtopic]
private Nachricht | Beiträge des Benutzers
Somakia
myCSharp.de - Member



Dabei seit:
Beiträge: 288
Herkunft: Hessen

beantworten | zitieren | melden

Was man auch noch machen könnte, wäre, die Windows-Mittel zu verwenden.
Ich rede hier explizit von den Shell32-Methoden, auf welche man durch das Einbinden der Interop.Shell32.dll recht einfach nutzen kann.
Leider ist da nicht viel mit Dokumentation, also man müsste ein wenig im Internet rumsuchen, aber nach ein bisschen Hin und Her kann ich nun ohne Probleme Zip-Dateien zumindest schonmal entpacken.
Wer also auf "externe" (mehr oder minder, da Shell32 IMHO ja nun nicht wirklich zu den .NET-Boardmitteln gehört) Komponenten verzichten möchte, würde mit der Shell32 IMHO für die einfachen Aufgaben Alles haben, was er braucht.

so far
Karill
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

Zustimm. Mitte WinApi ist zippen eiglich erträglich einfach, sodaß ich mir das Einbinden einer dll ersparen tu. Gugge (Un-)Zippen ohne Zusatz-Komponente
Nichtmal der Shell32-Verweis ist dafür nötig.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von ErfinderDesRades am .
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers