Zip-Datei ohne externe Tools entpacken.

    • VB.NET

    Es gibt 78 Antworten in diesem Thema. Der letzte Beitrag () ist von MRBD69.

      solar22 schrieb:

      Ich hab das Problem, dass das Script zwar den Ordner erstellt, aber nicht entpackt?

      Ich habe das selbe Problem - gibts da ne Lösung?
      mbfan
      You should live for that what you belive. - Drag-Drop Beschreibung
      Wenn ich den Quellcode ausführe, dann legt er zwar den Ordner "test_unzip_folder" an, aber dieser bleibt ohne Inhalt.

      Quellcode

      1. Public files As String
      2. Private Sub btnBrowseFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowseFile.Click
      3. Using ofd As New OpenFileDialog
      4. With ofd
      5. .FileName = String.Empty
      6. .Filter = "ZipFile|*.zip"
      7. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
      8. TextBox1.Text = .FileName
      9. files = ofd.FileName
      10. End If
      11. End With
      12. End Using
      13. End Sub
      14. Private Sub btnUnZip_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUnZip.Click
      15. Dim cu As New ClassUnzip(files, Path.Combine(Path.GetDirectoryName(files), "test_unzip_folder"))
      16. AddHandler cu.UnzipFinishd, AddressOf Unziped
      17. cu.UnzipNow()
      18. End Sub


      Könnt ihr mir weiterhelfen?

      VB.NET-Quellcode

      1. Dim cu As New ClassUnzip(files, Path.Combine(Path.GetDirectoryName(files), "test_unzip_folder"))


      Probier mal einen festgelegten Ort:

      VB.NET-Quellcode

      1. Dim cu As New ClassUnzip(files, Path.Combine(Path.GetDirectoryName(files), My.Computer.FileSystem.CurrentDirectory & "\Update"))


      Mfg ;)
      Hallo Gerry671,

      vermutlich wird beim Entpacken abgebrochen.
      Hab den Code z.B. noch nie auf einem X64 System getestet.

      Evtl. hat das Zip-Archiv ein Problem - bzw. der Code mit der Art deines Zip Archives.

      Hast du schonmal Breakpoints gesetzt ?
      Wie weit kommt der Code ?

      Wird eine Ausnahme geworfen ?
      Evtl. Try...Catch Block setzen

      Gruss

      mikeb69
      Hey Leute. Ich brauche den Code für mein Projekt.
      Ich gebe an:

      VB.NET-Quellcode

      1. Private Sub entpacken()
      2. Dim ordner As String = Application.StartupPath
      3. Dim file As String = ordner & "\Live-the-life.zip"
      4. Dim unzipper As New ClassUnzip(file, Path.Combine(Path.GetDirectoryName(file)), ordner)
      5. End Sub

      Mir wird der Path.Combine(Path.GetDirectoryName(file)) unterwellt.
      Als Tooltip steht dort

      Für den Parameter "path2" von "Public Shared Funktion Combine(path1 As String, path2 As String) As String" wurde kein Argument angegeben.

      Was mach ich falsch bzw. was/wo muss ich das bestimmen ?( ?(
      du musst natürlich 2 Werte übergeben die er dann kombiniert (daher auch Combine)
      du gibst 2 Werte an:
      "C:\Programme" und "Meine App" ... würde zwar einen gültigen Pfad ergeben ... aber das sähe mit & so aus "C:\ProgrammeMeine App" ... wäre aber sooo nicht gewollt
      nehmen wir dafür Combine kommt "C:\Programme\Meine App" raus
      und auch das würde "C:\Programme\Meine App" ergeben:
      "C:\Programme\" und "Meine App"
      "C:\Programme\" und "\Meine App"
      "C:\Programme" und "\Meine App"

      es guckt ob Backslashes gesetzt sind und fügt oder entfernt bedingt ein Backslash

      serials schrieb:

      eine frage: werden vorhandene dateien überschrieben?

      EDIT: Habs ausprobiert, leider kommt dann der typische dialog: Soll diese Datei überschrieben werden?
      kann man das irgendwie abschalten, sodass die dateien direkt überschrieben werden?

      Kann es sein dass die Frage noch niemand beantwortet hat?^^ Bräuchte das nämlich auch und läuft auch alles wunderbar... Bis auf das, dass jedesmal eine abfrage kommt "wirklich überschreiben?" ^^
      Hallo
      Ich habe das nicht verstanden, wie man herausfindet, welche Dateien entpackt wurden...
      Ich habe ein Projekt, das immer nur ein Zip Archiv entpacken soll, das immer nur ein Ordner enthält. (z.B. 12345.zip>12345(Ordner))
      Aber der Name des Ordners ist immer anders.
      Wie finde ich nun heraus, wie der Name des Ordners in der ZIP Datei ist, die entpackt werden soll?
      Ich will die Dateien entpacken und überschreiben lassen. Sie sollen nicht erst gelöscht und dann kopiert werden.

      VB.NET-Quellcode

      1. Dim files As String = My.Application.Info.DirectoryPath & "\Patch_01.zip"
      2. Dim cu As New ClassUnzip(files, Path.Combine(Path.GetDirectoryName(files), ""))
      3. AddHandler cu.UnzipFinishd, AddressOf Unziped
      4. cu.UnzipNow()

      Gab es schon Test mit Zip Dateien mit über 400mb???

      Hi Leute und erstmal danke für den snippet.

      Das Entpacken funktioniert super, hat bei tests mit kleineren zip Dateien (ca. 50mb) problemlos geklappt.
      Aber das Problem ist, das wenn ich anfange eine Datei mit über 400mb zu entpacken, der Vorgang erstmal ca. 2min einfriert und dann mit dem Entpacken beginnt...

      Gibt es eine möglichkeit den Prozess zu beschleunigen ??? Vielleicht hat das einer ja mal für sich selber gemacht...

      Vielen dank schonmal für hilfreiche antowrten :)
      Jein, versuch es mal in einem Thread auszulagern, dann wird die GUI dir schon mal keinen Strich durch die Rechnung machen bzw. das großartig Verlangsamen, aber ob es jetzt so viel schneller wird kann ich dir nicht versprechen.
      Jar hat soweit ich weiß die gleiche Kompression wie Zip