ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
435
435
EMPFEHLEN
-
05.08.11 00:11 #1
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
ich muss in einer C# Anwendung die Dateien aus einer *.ZIP Datei auslesen und ver- bzw. bearbeiten. Anschließend muss ich die Dateien wieder in der *.ZIP Datei speichern.
Ich habe jetzt schon rumgesucht, aber keine Möglichkeit gefunden dies zu Realisieren.
Die Anforderung ist, dass es mit einer möglichst niedrigen Version des .NET Frameworks funktionieren muss und keine 3rd Libraries verwendet werden dürfen. Es muss auch sowohl unter Windows XP und Windows 7 unterstützt werden.
-
Hi
wäre das was?
http://msdn.microsoft.com/en-us/libr...=VS.90%29.aspx
Google...
Gruß
-
05.08.11 09:01 #3
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
also ich habe es mal mit der Klasse ZipPackage versucht. Leider habe ich es noch nicht zum Funktionieren gebracht.
Ich habe versucht mir mal den Inhalt einer *.zip Datei anzeigen zu lassen.
Code :1 2 3 4 5 6 7 8 9 10 11
Package package = ZipPackage.Open(fileName, FileMode.Open, FileAccess.Read); PackagePartCollection parts = package.GetParts(); foreach (PackagePart part in parts) { Uri uri = part.Uri; System.Console.WriteLine(uri); }
Dabei liefert package.GetParts() jedoch eine leere PackagePartCollection zurück obwohl es sich bei fileName um eine *.zip Datei mit mehreren Dateien und Verzeichnissen handelt.
Gruß
Tikonteroga
-
05.08.11 12:42 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Das ZipPackage von Microsoft funktioniert nur wenn das .zip eine bestimmte XML Datei enthält (kann mich grad nicht erinnern wie die heißen muß).
D.h. es ist in der Regel unbrauchbar um beliebige Zip Dateien zu verarbeiten.
Verwende doch einfach die DotNetZipLib => http://dotnetzip.codeplex.com/
Einfacher geht es nicht.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hi zusammen
@Deepthroat
Die Anforderung war: Keine 3rd Party Libs
Die älteste und einfachste (wobei das hier auf die Funktionalität bezogen ist) sind die Klassen aus System.IO.Compression. Vorhanden seit .NET 2.0Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
05.08.11 14:22 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Oh, das hab ich nicht gelesen. Ist aber in der Regel auch Schwachsinn solch eine Selbstgeißelung...

(Wenn das mit .NET vernünftig funktionieren würde, hätten wohl weniger Leute externe Zip Bibliotheken geschrieben...)
Das sind aber nur die Grundbausteine um mit Zip Dateien umgehen zu können. Da müßte man erstmal das Zip Format Implementieren -- um Prinzip genau so wie es DotNetZip macht...
Eine andere Möglichkeit ist die Verwendung von P/Invoke und den WinAPI zip Funktionen => http://www.codeproject.com/KB/cs/com...hellapics.aspx + http://www.codeproject.com/KB/cs/dec...hellapics.aspx
Das bietet aber auch nur relativ limitierte Funktionalität...
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Vielleicht ja auch eine Aufgabe im Studium?! Anforderung ist nun mal Anforderung!
Wieso das Zip-Format implementieren?
DeflateStream bietet eine einfache Möglichkeit Zip-Archive zu erzeugen. Weder in der MSDN noch in meinen Posts steht, dass es alles kann.
Egal was, es muss auch nicht ALLES können, sondern den Anforderungen genügen
Schau doch bitte nochmal in den Anforderungen
Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Hi
Das, was aus der Klasse im Compression-Namespace rauskommt ist zwar komprimiert, passt aber nicht ganz mit einer Zip-Datei zusammen (Header und/oder irgendwas).
@PInvoke&Winapi:
XP und 7: Erfüllt
Möglichst Abwärtskompatibel: Sollte ausreichend erfüllt sein, XP geht sicher
Keine externen Libs: Erfüllt
Wo ist das Problem?
-
05.08.11 16:47 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Richtig. Die Klassen im Compression-Namespace stellen einfach einige Kompressionsmethoden zur Verfügung, die man dann fürs Zippen verwenden könnte. Eine Zip Datei besteht aber i.d.R. aus mehreren komprimierten Datenströmen und enthält verschiedene Metainformation über die Einträge (Kompressionsmethode (es gibt verschiedene), zumindest DOS Date/Time, wo fangen die Daten im Zip für den Eintrag an usw.).
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
05.08.11 18:30 #10
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
danke für die Beiträge. Ich werde das Problem am Montag weiterbearbeiten. Jetzt habe ich erst einmal Feierabend und Wochenenden.
Da es oft das Thema innerhalb der Diskussion war, werde ich kurz auf das Thema mit den Third Libraries eingehen.
Die Software die ich entwickle wird kommerziell verwendet und wird letztendlich sehr komplex werden. Wenn ich jetzt eine Third Party Library einsetze muss ich diese Library zum Einen testen und zum Anderen muss ich sie mit einer Anwendung ausliefern und erhöhe somit den Aufwand für das Konfigurationsmanagement.
Bei der .NET Library kann ich davon ausgehen, dass Sie funktioniert und diese ist auch auf den Rechner meiner Zielgruppe zumindest in einer bestimmten Version bereits installiert.
Ähnliche Themen
-
Perl: .gz Datei entpacken / einlesen
Von dtm im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 29.11.09, 14:12 -
Zip-Datei auf dem Server entpacken
Von djmila im Forum PHPAntworten: 2Letzter Beitrag: 02.02.09, 14:54 -
VB-Skript datei entpacken
Von vatandas im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 01.01.08, 16:10 -
Tar Datei Mit Vb Packen Und Entpacken
Von Felixcate im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 22.08.06, 15:28 -
Zip Datei entpacken
Von michaelwengert im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 01.10.04, 08:29





Zitieren


Login





