Zip-Archiv mit beibehalten der Zip-Archiv internen Verzeichnisstruktur

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Zip-Archiv mit beibehalten der Zip-Archiv internen Verzeichnisstruktur

    Moin!

    ich habe ZIP-Archive zu entpacken in denen Dateien wiederum in Unterordnern sich befinden.

    Beispiel: C:\temp\Data\v3\Bsp.zip\Test\ ..... und dann die Dateien

    Mein bisheriger Code sieht wie folgt aus:

    VB.NET-Quellcode

    1. ZipArchivFile = Path.GetFileNameWithoutExtension(ZipArchivPfad)
    2. ZipArchivRoot = Path.GetDirectoryName(ZipArchivPfad)
    3. Folder2Unzip = ZipArchivRoot ' hier stand früher etwas anderes und deshalb noch nur ein Variablentausch. Passe ich später an
    4. If System.IO.Directory.Exists(Folder2Unzip) = False Then
    5. Try
    6. System.IO.Directory.CreateDirectory(Folder2Unzip)
    7. Catch ex As Exception
    8. Console.WriteLine("Fehler beim Anlegen des Verzeichnis!" & vbCrLf & ex.ToString & Folder2Unzip)
    9. Exit Sub
    10. End Try
    11. End If
    12. If System.IO.Directory.Exists(Folder2Unzip) = False Then
    13. MsgBox("Verzeichnis konnte nicht angelegt werden!", MsgBoxStyle.Critical, k_AppName)
    14. End If


    Wenn ich das entpacke, dann werden die Daten im Root-Verzeichnis abgelegt.

    Beispiel: C:\temp\Data\v3 ..... und dann die Dateien

    Ich habe bei "ExtractToDirectory" nochmal geschaut, aber irgendwie habe ich da keine Option gefunden um die Verzeichnisse im Archiv zu berücksichtigen.

    Kann mir einer weiterhelfen?

    Gruß Jan
    Ich sehe nirgends in deinem Code etwas das mit dem entpacken zu tun hat und kann dein Problem nicht nachvollziehen.

    Zip content

    Quellcode

    1. folder1
    2. - file1
    3. - file2
    4. folder2
    5. - file1
    6. - file2
    7. file1


    C#-Quellcode

    1. ZipFile.ExtractToDirectory(@"C:\test.zip", @"C:\temp");


    C:\temp

    Quellcode

    1. folder1
    2. - file1
    3. - file2
    4. folder2
    5. - file1
    6. - file2
    7. file1
    Moin!

    oh, einen Absatz vergessen... ;(

    VB.NET-Quellcode

    1. Try
    2. System.IO.Compression.ZipFile.ExtractToDirectory(ZipArchivPfad, Folder2Unzip)
    3. Catch ex As Exception
    4. MsgBox("Zip-Archiv mit den Risse konnte nicht extrahiert werden!" & vbCrLf & "Eventuell sind die Daten bereits extrahiert!", MsgBoxStyle.Critical, k_AppName)
    5. Exit Sub
    6. End Try


    Gruß Jan
    Und wo ist jetzt dein Problem?
    ZipArchivRoot ist nach deinen Infos C:\temp\Data\v3, also ist es doch richtig das die Daten nach C:\temp\Data\v3 entpackt werden.
    Moin!

    als ich dieses Posting angefangen hatte wurden die extrahierten Dateien immer in einem Ordner abgelegt der sich aus dem Namen des ZipArchives und dem enthaltenen Unterordner zusammen gesetzt hat.

    Deshalb konnte ich ich die Rückfrage nach meinem Problem nicht verstehen.

    Nun habe ich mir das nochmal angesehen und alles ok.

    Dann belassen wir es vorerst einmal dabei.

    Danke für die die Unterstützung dennoch.

    Gruß Jan