Nach Async Download direkt unzippen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von SchokoMilch.

    Nach Async Download direkt unzippen

    Tag.
    Vorerst: Das Problem besteht nicht, wenn ich eine Zip downloade, wo nur eine Text Datei drinnen ist. (Die normale Datei hat 500 mb)

    Ich lasse das Programm async Downloaden, und frage in einem Timer ab, ob der Download abgeschlossen ist. Wenn ja, soll er unzippen.

    VB.NET-Quellcode

    1. Dim Downloader As New System.Net.WebClient
    2. AddHandler Downloader.DownloadProgressChanged, AddressOf Download_DownloadProgressChanged
    3. Downloader.DownloadFileAsync(New Uri(Url), ".\Games\" & Label12.Text & ".zip")
    4. Timer3.Start()


    VB.NET-Quellcode

    1. Private Sub Download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
    2. ProgressBar1.Maximum = e.TotalBytesToReceive
    3. ProgressBar1.Value = e.ProgressPercentage / 100 * e.BytesReceived
    4. ProgressBar1.Refresh()
    5. Label10.Text = "Schritt 1/4 - Herunterladen - " & e.ProgressPercentage & "%"
    6. End Sub


    VB.NET-Quellcode

    1. If Label10.Text = "Schritt 1/4 - Herunterladen - 100%" Then
    2. Label10.Text = "Schritt 2/4 - Entpacken"
    3. Try
    4. Using Zip As Zimpler.ZipFile = Zimpler.ZipFile.FromFile(".\Games\" & Label12.Text & ".zip")
    5. Zip.ExportAll(".\Games")
    6. End Using
    7. Catch ex As Exception
    8. MsgBox(ex.ToString)
    9. End Try
    **Ein Label Abfragen ist vielleicht nicht so optimal, später werden die % in einer Var gespeichert.

    Eine Exeption wird nicht ausgegeben, die Datei wird aber auch nicht unzipped.
    Diese Lib benutze ich: [Beta] Zimpler: einfache Archiv Lib[.zip & .tar Archive]
    Wie gesagt, besteht das Problem nicht bei der Zip wo nur die txt drinnen ist.
    Bei diesem Download sind viele Dateien drinnen, insgesammt 500 mb.

    Gruß

    SchokoMilch schrieb:

    Funktioniert leider nicht
    Löse Deine Probleme einzeln.
    WErstelel die Downlosd-Events und überzeuge Dich, dass sie funktioneren: ProgressBar bzw. MessageBox.
    Entzippe die Zip.
    Wenn alles klappt, pack es zusammen.
    Möglicherweise musst Du nach dem DownloadFileCompleted-Event ein klein wenig warten, bau da einfach vorher ein Sleep(x) rein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe die Datei testweise manuell im ordner liegen - Es liegt nicht am Download.
    Bei der ICPSharpCode.SharpZipLib kommt der Fehler: cannot find central directory

    VB.NET-Quellcode

    1. Dim fz As New FastZip()
    2. fz.ExtractZip(".\Games\" & Label12.Text & ".zip", ".\Games\", Nothing)

    Der Pfad stimmt, habe ihn schon ausgeben lassen.
    Die Zip kann ich mit Winrar auch normal öffnen, die datei ist also nicht beschädigt.

    Kann mir da jemand mit ICPSharpCode.SharpZipLib erfahrung helfen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SchokoMilch“ ()

    Dann gib ihm mal den vollständigen Pgad: "c:\Temp\Zip\xxx.zip"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kompletten Pfad eingefügt,
    Immernoch der Fehler.

    Edit: Es liegt nicht am Pfad.
    Wenn ich irgendeine Fantasie Datei angebe, kommt ein ganz anderer Fehler, eine exeption "File not found".
    Also muss es an irgendetwas anderem liegen.
    Was sagt die Beschreibung von FastZip dazu?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Was sagt die Beschreibung von FastZip dazu?
    Ich meinte, wirf mal einen Blick in die Beschreibung der einzelnen Funktionen dieser Bibliothek. :rolleyes:

    SchokoMilch schrieb:

    Das ist alles was ich zu sehen bekomme.
    ist da eher die falsche Antwort.
    Hast Du die Quellen davon?
    Setze einen Haltepunkt rein und erforsche, warum es knallt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!