Announcement

Collapse
No announcement yet.

SharpZipLib - Einzelne Datei mit Dateistruktur entpacken/auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SharpZipLib - Einzelne Datei mit Dateistruktur entpacken/auslesen

    Hallo zusammen


    Ich habe ein Problem beim Auslesen/Entpacken einer einzelnen Datei aus einem Zip-File. In dem Zip existieren Ordnerstrukturen und die Datei ist in einigen Ordnern verschachtelt. Ich möchte diese nun auslesen, aber das funktioniert nicht. Wenn ich allerdings eine Datei im root-Verzeichnis des Zip-Files auslesen möchte, funktioniert das.
    Wer kennt sich mit #ZipLib aus und kann mir da helfen?

    Folgender Code:

    Code:
    using (var fs = new System.IO.FileStream(xEnvironment.Path.ZipFile, System.IO.FileMode.Open, System.IO.FileAccess.Read))
                using (var zf = new ICSharpCode.SharpZipLib.Zip.ZipFile(fs))
                {
                    var ze = zf.GetEntry(@"net\mc\client\mc.txt");
                    if (ze == null)
                    {
                        throw new ArgumentException("mc.class", "not found in Zip");
                    }
    
                    using (var s = zf.GetInputStream(ze))
                    {
                        // do something with ZipInputStream
                        System.IO.TextReader tr = new System.IO.StreamReader(zf.GetInputStream(ze));
                        string str = tr.ReadToEnd();
                        tr.Close();
                    }
                }
    gebe ich bei GetEntry() eine einzelne Datei an, die im Root-Verzeichnis existiert, dann klappt es, wenn ich das aber mit der Datei in einem unterverzeichnis versuche, geht das nicht.
    IDE: Microsoft Visual Studio 2008 Professional SP1
    Programmiersprache: C#

  • #2
    schon mal

    var ze = zf.GetEntry(@"net/mc/client/mc.txt");

    oder

    var ze = zf.GetEntry(@"net\\mc\\client\\mc.txt");

    probiert
    Christian

    Comment


    • #3
      Hilfe zu GetEntry aus dem Sourcecode.

      /// <summary>
      /// Searches for a zip entry in this archive with the given name.
      /// </summary>
      /// <param name="name">
      /// the name. May contain directory components separated by slashes ('/').
      /// </param>
      /// <returns>
      /// the zip entry, or null if no entry with that name exists.
      /// </returns>
      public ZipEntry GetEntry(string name)

      Comment

      Working...
      X