.zip Entpacken

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Nikx.

    .zip Entpacken

    Hallo zusammen,

    ich weiß das es schon Threads von diesem Thema gibt aber ich komm einfach nicht auf den Richtigen Code, ich will eine .zip Datei entpacken. Einfach entpacken wie mache ich das ich habe viele Codes wie man was Packt (KLICK - ging nicht) und ein .dll entpacker aber der geht nicht.

    Wie kann ich mit 7zip oder so eine .zip Datei entpacken?

    Bitte um Hilfe.
    Wie sollen wir dir helfen, wenn du es nicht schaffst bereits fertigen Kot in dein Programm einzubauen???
    Ich meine aus Scheiße ein fertiges Programm zu zaubern ist einfach, wenn man alle Grundlagen kennt und den Code versteht!

    Deswegen -> Galileo Openbook

    Ansonsten: WAS geht nicht?

    LG

    PS: Und so Aussagen wie "ich komm einfach nicht auf den Richtigen Code": Es wird keinen Code geben den du einfach C&P´n kannst, da jedes Programm anders ist...
    Das kommt davon wenn man keine Grundlagen kann und eigentlich garnichts von Virsual Basik (oder so? :whistling:) versteht und immer nur kopiert. Es ist eine Programmier-
    SPRACHE und nichts für Script Kiddies. Hach ja, du hättest wohl lieber mal hal2000´s Beitrag lesen sollen...

    MB-Tech schrieb:

    Wie sollen wir dir helfen, wenn du es nicht schaffst bereits fertigen Kot in dein Programm einzubauen???
    Ich meine aus Scheiße ein fertiges Programm zu zaubern ist einfach, wenn man alle Grundlagen kennt und den Code versteht!

    Deswegen -> Galileo Openbook

    Ansonsten: WAS geht nicht?

    LG

    PS: Und so Aussagen wie "ich komm einfach nicht auf den Richtigen Code": Es wird keinen Code geben den du einfach C&P´n kannst, da jedes Programm anders ist...
    Das kommt davon wenn man keine Grundlagen kann und eigentlich garnichts von Virsual Basik (oder so? :whistling:) versteht und immer nur kopiert. Es ist eine Programmier-
    SPRACHE und nichts für Script Kiddies. Hach ja, du hättest wohl lieber mal hal2000´s Beitrag lesen sollen...

    bei dem Code vom Vorherigen Link:

    VB.NET-Quellcode

    1. 'Aus der Klassenbibliothek 'ICSharpCode.SharpZipLib" werden folgende Klassen
    2. 'importiert:
    3. Imports ICSharpCode.SharpZipLib.Zip
    4. Imports ICSharpCode.SharpZipLib.Core
    5. 'Der System.IO Namespace wird importiert
    6. Imports System.IO
    7. ''' <summary>
    8. ''' Ermöglicht eine simple Archivierung von Dateien in eine Zip Datei, sowie
    9. ''' das Entpacken von Zip Dateien.
    10. ''' </summary>
    11. ''' <remarks></remarks>
    12. Public Class SimplyZip
    13. ''' <summary>
    14. ''' Archiviert den Inhalt eines Ordners
    15. ''' </summary>
    16. ''' <param name="sourceFolder">Gibt den Pfad des Ordners an, der
    17. ''' die zu komprimierenden Dateien enthält</param>
    18. ''' <param name="ArchivePath">Gibt den Pfad des Zip Archives an</param>
    19. ''' <param name="CompressLevel">Bestimmt die Komprimierungsstufe
    20. ''' 0 Speichert nur, 9 ist die höchste Komrimierungsstufe
    21. ''' </param>
    22. ''' <remarks>Die Komprimierung erfolgt synchron. Das Benutzerformular
    23. ''' könnte eine gewisse Zeit blockiert werden!</remarks>
    24. Public Shared Sub CompressData(ByVal sourceFolder As String, _
    25. ByVal ArchivePath As String, ByVal CompressLevel As Integer)
    26. Dim d As New DirectoryInfo(sourceFolder)
    27. 'Stellt den Puffer während des späteren Kopierens dar
    28. Dim buffer(4096) As Byte
    29. Dim f As FileInfo
    30. 'Lädt alle im sourceFolder Ordner enthaltenden Dateien und
    31. 'schreibt sie in ein Array
    32. Dim Files() As FileInfo = d.GetFiles("*.*")
    33. 'Ein neuer ZipOutputStream wird erstellt und initialisiert
    34. Dim s As New ZipOutputStream(File.Create(ArchivePath))
    35. 'Weißt dem ZipOutputStream die Qualität der Komprimierung zu
    36. s.SetLevel(CompressLevel)
    37. 'Geht jeden Eintrag in dem Array 'Files' durch
    38. For Each f In Files
    39. 'Initialisiert einen neuen Zip Eintrag
    40. Dim entry As New ZipEntry(f.ToString)
    41. 'Startet einen neuen Eintrag im Zip Archiv
    42. s.PutNextEntry(entry)
    43. 'Initialisiert einen Filestream, der den Inhalt einer Datei ausliest
    44. Dim fs As FileStream = File.OpenRead(d.FullName & "\" & f.ToString)
    45. 'Liest die einzelnen Bytes der Datei aus und kopiert sie in den Zip Eintrag
    46. StreamUtils.Copy(fs, s, buffer)
    47. Next
    48. 'Schließt die Einträge im Zip Archiv
    49. s.CloseEntry()
    50. 'Schließt das Zip Archiv
    51. s.Close()
    52. End Sub
    53. ''' <summary>
    54. ''' Entpackt ein Zip Archiv
    55. ''' </summary>
    56. ''' <param name="DestinationFolder">Gibt den Pfad des Ordners an,
    57. ''' in den die Dateien entpackt werden sollen</param>
    58. ''' <param name="Archive">Gibt den Pfad des Zip Archives an</param>
    59. ''' <remarks>Das Entpacken erfolgt synchron. Das Benutzerformular
    60. ''' könnte eine gewisse Zeit blockiert werden!</remarks>
    61. Public Shared Sub DecompressData(ByVal DestinationFolder As String, _
    62. ByVal Archive As String)
    63. Dim theEntry As ZipEntry
    64. Dim size As Integer
    65. Dim data() As Byte
    66. Dim outputStream As FileStream
    67. 'Ein neuer ZipInputStream wird erstellt und initialisiert
    68. 'Der Pfad des Zip Archives wird zum lesen geöffnet
    69. Dim s As New ZipInputStream(File.OpenRead(Archive))
    70. 'Läuft so lange, bis keine Einträge in dem Zip Archiv
    71. 'gefunden werden. Mit jedem Schleifendurchgang wird
    72. 'Ein neuer Eintrag entpackt
    73. Do
    74. 'Liest den nächsten Eintrag im Zip Archiv aus
    75. theEntry = s.GetNextEntry
    76. 'Wenn der Eintrag keinen Wert hat, wird die Schleife abgebrochen
    77. If theEntry Is Nothing Then
    78. Exit Do
    79. End If
    80. 'Wenn die Länge des Zip Eintrages nicht 0 ist
    81. 'Diese Abfrage wurde eingebaut, um einen Fehler abzufangen, der
    82. 'Auftritt, wenn ein Eintrag 0 Byte groß ist.
    83. If Not s.Length = 0 Then
    84. 'Der FileStream 'outputStream' wird angewiesen eine Datei
    85. 'mit dem Namen des derzeitigen Eintrags anzulegen, mit der Anzahl der
    86. 'Bytes, die der aktuelle Eintrag hat.
    87. outputStream = File.Create(DestinationFolder & "\" & theEntry.Name, s.Length)
    88. 'Das Array data() wird redimensioniert, um die Anzahl
    89. 'der Lesedurchgänge festzulegen. Die Anzahl der Lesedurchgänge
    90. 'hängt von der Größe der Datei (in Bytes) ab.
    91. ReDim data(s.Length)
    92. 'Ließt einen Byteblock der Datei und gibt ihn als Integer zurück
    93. size = s.Read(data, 0, data.Length)
    94. 'Wenn 'size' größer als Null ist, wird der Filestream
    95. 'angewiesen die eingelesenden Bytes in die erstellte Datei zu schreiben.
    96. 'Size gibt die maximale Anzahl der Bytes an, die in die Datei
    97. 'geschrieben werden sollen.
    98. If size > 0 Then
    99. outputStream.Write(data, 0, size)
    100. End If
    101. Else
    102. 'Wenn die größe des Eintrags 0 ist, wird die Datei ohne Schreibprozesse erstellt
    103. outputStream = File.Create(DestinationFolder & "\" & theEntry.Name)
    104. End If
    105. Loop
    106. 'Der Filestream wird geschlossen
    107. outputStream.Close()
    108. 'Das Zip Archiv wird geschlossen
    109. s.Close()
    110. End Sub
    111. End Class



    Folgende Fehler:

    Fehler 3 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 89 1 Schnellzugriff
    Fehler 4 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 90 1 Schnellzugriff
    Fehler 5 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 92 1 Schnellzugriff
    Fehler 9 Der Typ "ZipOutputStream" ist nicht definiert. C:\***\Form1.vb 130 26 Schnellzugriff
    Fehler 12 Der Typ "ZipInputStream" ist nicht definiert. C:\***\Form1.vb 189 26 Schnellzugriff
    Fehler 10 Der Typ "ZipEntry" ist nicht definiert. C:\***\Form1.vb 181 29 Schnellzugriff
    Fehler 11 Der Typ "FileStream" ist nicht definiert. C:\***\Form1.vb 184 33 Schnellzugriff
    Fehler 7 Der Typ "FileInfo" ist nicht definiert. C:\***\Form1.vb 121 22 Schnellzugriff
    Fehler 8 Der Typ "FileInfo" ist nicht definiert. C:\***\Form1.vb 126 28 Schnellzugriff
    Fehler 6 Der Typ "DirectoryInfo" ist nicht definiert. C:\***\Form1.vb 116 26 Schnellzugriff
    Fehler 13 "File" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\***\Form1.vb 216 36 Schnellzugriff
    Fehler 14 "File" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\***\Form1.vb 239 36 Schnellzugriff

    Was soll ich jetzt machn?
    HAHAHA!

    Sorry, ich muste gerade einmal herzhaft lachen.
    Spiel lieber weiter COD7 etc. da hast du evtl. mehr Erfolg.

    JUNGE! Du musst die Grundlagen lernen, um solch einen Code umzusetzen.
    Oder denkst du für jede Situation gibt es einen Deppen hier im Forum der dir die Lösung parat schreibt?

    NEIN!
    Anfänger beschäftigen sich mit Grundlagen und nicht wie man zip´s entpackt...

    LG

    pascal20997 schrieb:

    kann jemand helfen? (und nicht immer vom thema ablenken?)?
    Wieso ablenken? Das ist genau das Thema!

    Was erhoffst du dir denn? Meinst du wir sagen: Ja einmal da klicken, VB neustarten und schon geht alles?
    NEIN! Wenn du das willst, dann musst du in den Marktplatz gehen und dort Nachfragen.

    Also echt :thumbdown:

    LG
    Hört sich nach gebettel an obwohl unsere Hilfe auch nichts bringen würde.
    Schließlich sind wir nicht hier um dir das Openbook von 0-100% komplett zu erläutern.

    Vote 4 Close


    LG
    An dieser Stelle empfehle ich dir das mal durchzulesen.

    Irgendwie spiegelt sich der TE darin wieder...

    LG
    Fehler 3 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 89 1 Schnellzugriff
    Fehler 4 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 90 1 Schnellzugriff
    Fehler 5 Imports-Anweisungen müssen vor Deklarationen stehen. C:\***\Form1.vb 92 1 Schnellzugriff
    Fehler 9 Der Typ "ZipOutputStream" ist nicht definiert. C:\***\Form1.vb 130 26 Schnellzugriff
    Fehler 12 Der Typ "ZipInputStream" ist nicht definiert. C:\***\Form1.vb 189 26 Schnellzugriff
    Fehler 10 Der Typ "ZipEntry" ist nicht definiert. C:\***\Form1.vb 181 29 Schnellzugriff
    Fehler 11 Der Typ "FileStream" ist nicht definiert. C:\***\Form1.vb 184 33 Schnellzugriff
    Fehler 7 Der Typ "FileInfo" ist nicht definiert. C:\***\Form1.vb 121 22 Schnellzugriff
    Fehler 8 Der Typ "FileInfo" ist nicht definiert. C:\***\Form1.vb 126 28 Schnellzugriff
    Fehler 6 Der Typ "DirectoryInfo" ist nicht definiert. C:\***\Form1.vb 116 26 Schnellzugriff
    Fehler 13 "File" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\***\Form1.vb 216 36 Schnellzugriff
    Fehler 14 "File" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nich

    Alle fehler die die hier erscheinen, kommt alles aus die Grundlagen, diese Themen werden auf erste seite besprochen und behandelt.

    @Treadsteller: statt irgend-welche Code blind runter saugen die du nich ein mal verstehst, fang mit ganz eingfachere und premetiven sachen an, am besten mit Grundlagen. Solche Fehler solltest du selber beheben !
    Und wenn du das nicht einsiehst, dann kannst du leider kein cooler Programmierer sein und solltest die IDE schnellstens wieder deinstallieren und dich dem Zocken widmen.

    LG
    Ihr müsst ihn nicht noch weiter "runtermachen". ;)

    Er weiss wahrscheinlich nicht, dass man für das Programmieren eher "wissen" als C&P braucht. Dies bekommt man in Büchern (schon davon gehört?) sehr verständlich geschrieben. Er will aber anscheinend nicht die Grundlagen lernen, so bekommt er auch keine Hilfe.

    Achja,
    Wenn du, doom, umbedingt die Bedankung willst, kannst du es sozusagen aufgeben, da die meisten "Kiddys" ehm.. "Kopipäistler" alias "Oberh4xx0r5 sich selten Bedanken - sie wollen nur Code und verschwinden wieder.

    Schönen Tag noch.

    mfg. EiPott
    Moin moin

    Das entpacken stellt bei mir kein Problem dar, in der gleichen Code Passage darauf zuzugreifen aber schon.

    Hier die Schilderung des Problems ein Stück genauer:

    Das Entpacken hat schon mal geklappt. Ein .zip komprimierter Ordner wird zu einem normalen. Nun möchte ich das ganze aber für den späteren Benutzer ein wenig komfortabler gestellten. Er soll nicht zweimal den Pfad zur Datei eingeben müssen.

    Mein Ziel ist:
    Der Benutzer startet den OpenFileDialog er sucht sich die gewünschte .zip Datei aus und klickt auf weiter/öffnen. Die Applikation darunter soll direkt nach dem Entpacken mit den nun hinzugekommenen Files Arbeiten können.

    Gibt es das eine Lösung ohne RegEx?
    ich mcöhte einerseits sagen,das cih es ein wenig unverschämt finde wie manche sich extreme verhalten dann sollten sie sich nicht weiter drum kümmern wenn sie nicht helfen wollen ,aber zum anderen finde ich das gegenteilige auftreten hier auch etwas naja wie soll ich das sagen unverschämt so ungefair mir ist egal was ihr alle sagt gebt mir ienen feritgne code das man kaum fertige codes bekommt sollte einem klar sein und fals es das nicht ist ,weist man es nun und wenn man einen bekommt bzw den link zueinem sollte man froh sein.wenn dir immer alle alles vorsagen wirst du nie sagen können das programm habe ich selbst geschrieben du kannst nur sagen der hats geschriebend er verbessert und ich ahbe es erstellt.probier es aus und wenn ein deklarations fehler da ist google nach vb 2008/10 declaration oder declarieren.


    so entschuldigung für das auftreten aber das msuste mal sein .ich hoffe es nimmt mir keiner übel :D wir sind doch eine gemeinschaft