Zip extract findet Ordner nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Zip extract findet Ordner nicht

    Ich habe das Problem, das ich den Fehler bekomme, dass der Pfad nicht gefunden wird.

    Mein Code:

    VB.NET-Quellcode

    1. Using archive As ZipArchive = ZipFile.OpenRead(wpSaveZip)
    2. Dim maxEntries As Integer = archive.Entries.Count
    3. loader.SetMaximum(maxEntries)
    4. Dim currentEntry As Integer = 0
    5. For Each entry As ZipArchiveEntry In archive.Entries
    6. currentEntry += 1
    7. loader.Increase(1)
    8. loader.SetDescription("Decompiling Wordpress... (" & Math.Round(currentEntry / maxEntries * 100) & "%)")
    9. ' Gets the full path to ensure that relative segments are removed.
    10. Dim destinationPath As String = Path.GetFullPath(Path.Combine(wpSaveFolder, entry.FullName))
    11. ' Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
    12. ' are case-insensitive.
    13. If destinationPath.StartsWith(wpSaveFolder, StringComparison.Ordinal) Then
    14. If Not My.Computer.FileSystem.DirectoryExists(Path.GetDirectoryName(destinationPath)) Then
    15. Directory.CreateDirectory(Path.GetDirectoryName(destinationPath))
    16. End If
    17. Application.DoEvents()
    18. Console.WriteLine("Currently decompiling to: " & destinationPath)
    19. entry.ExtractToFile(destinationPath, True) ' Hier ist der Fehler
    20. End If
    21. Next
    22. End Using


    Vielen Dank im vorraus.
    Grüße, Matix
    Schau mal bei destinationPath in Zeile#13 rein. Auch wenn ich es nicht getestet habe, schweißt Du da was zusammen, was nicht zusammengehört: Einen Ordnerpfad mit einem Komplettdateipfad (.FullName), der aus Ordnerpfad+Dateinamen besteht. Da dürfte vielleicht sowas rauskommen: C:\Users\MatixMedia\Documents\D:\Daten\Zip-Archive\MeineZipDatei.zip
    Aber das hättest Du durch einfaches Debugging selber rausgefunden. Einfach dem Fehler folgen: Wenn der Compiler an der gezeigten Stelle unterbricht, mit dem Mauscursor über den Variablen verweilen, um den Wert angezeigt zu bekommen. Dann sollte relativ schnell klar werden, wo der Fehler liegt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Die Zip Datei: C:\Users\user\AppData\Roaming\Wordpress_er\Wordpress-er\1.0.0.0\wp_download_695402777.zip
    Also an ende ist der Destination Path: C:\Users\user\AppData\Roaming\Wordpress_er\Wordpress-er\1.0.0.0\wp_695402777\wordpress\
    Und die .FullName Variable steht glaube ich für den vollen Pfad INNERHALB der Zip Datei. Aber da bin ich mir auch nicht sicher.

    Der Fehler

    Quellcode

    1. System.IO.DirectoryNotFoundExcption: Ein Teil des Pfades "C:\Users\user\AppData\Roaming\Wordpress_er\Wordpress-er\1.0.0.0\wp_695402777\wordpress\" konnte nicht gefunden werden.
    2. bei System.IO.__Error.WinIOError(...
    3. ...Window.vb:Zeile 214. (Im Code Markiert)


    Konsolen Ausgabe aus dem Code: Currently decompiling to: C:\Users\user\AppData\Roaming\Wordpress_er\Wordpress-er\1.0.0.0\wp_695402777\wordpress\
    Grüße, Matix
    Aber destinationPath muss Ordner+Dateiname sein. Daher sollte doch klar sein, dass allein die Konsolenausgabe auf den Fehler hinweist: Da wird ein Ordner angezeigt, aber die Funktion erwartet den Ordner plus am Ende den Dateinamen, siehe MSDN. Das heißt, dass entry.FullName ggf. schon fälschlicherweise leer ist?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.