tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
435
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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.
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    wäre das was?
    http://msdn.microsoft.com/en-us/libr...=VS.90%29.aspx
    Google...

    Gruß
     

  3. #3
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  5. #5
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    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.0
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Nico Graichen Beitrag anzeigen
    @Deepthroat
    Die Anforderung war: Keine 3rd Party Libs
    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...)
    Zitat Zitat von Nico Graichen Beitrag anzeigen
    Die älteste und einfachste (wobei das hier auf die Funktionalität bezogen ist) sind die Klassen aus System.IO.Compression. Vorhanden seit .NET 2.0
    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.

  7. #7
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Zitat Zitat von deepthroat Beitrag anzeigen
    Oh, das hab ich nicht gelesen. Ist aber in der Regel auch Schwachsinn solch eine Selbstgeißelung...
    Vielleicht ja auch eine Aufgabe im Studium?! Anforderung ist nun mal Anforderung!
    Zitat Zitat von deepthroat Beitrag anzeigen
    (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...
    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
    Zitat Zitat von deepthroat Beitrag anzeigen
    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ß
    Schau doch bitte nochmal in den Anforderungen
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  8. #8
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    Zitat Zitat von Nico Graichen Beitrag anzeigen
    Wieso das Zip-Format implementieren?
    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:
    Zitat Zitat von Nico Graichen Beitrag anzeigen
    Schau doch bitte nochmal in den Anforderungen
    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?
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von sheel Beitrag anzeigen
    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).
    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.

  10. #10
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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

  1. Perl: .gz Datei entpacken / einlesen
    Von dtm im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 29.11.09, 14:12
  2. Zip-Datei auf dem Server entpacken
    Von djmila im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.02.09, 14:54
  3. VB-Skript datei entpacken
    Von vatandas im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 01.01.08, 16:10
  4. Tar Datei Mit Vb Packen Und Entpacken
    Von Felixcate im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 22.08.06, 15:28
  5. Zip Datei entpacken
    Von michaelwengert im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 01.10.04, 08:29