In zip datein gucken via Visual Basic

Diskutiere In zip datein gucken via Visual Basic im Programmierung Forum im Bereich Software Forum; Hallo, ich habe nur eine kurze frage, wie kann ich in Zip Dateien rein gucken mit Visual Basic. Ich möchte da nämlich eine xml drauß lesen ohne...
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Hallo,
ich habe nur eine kurze frage, wie kann ich in Zip Dateien rein gucken mit Visual Basic. Ich möchte da nämlich eine xml drauß lesen ohne die zips immer auspacken zu müssen, hoffentlich geht das, ansonsten heißt es ja immer auspacken in einen temp Ordner.
 
A

AlienJoker

Gast
Da wirst du kaum eine Wahl haben, denn das was du willst, macht einfach nur den Temporär-Quatsch im Hintergrund. Ich kann dir aber Ionic Zip empfehlen. Das ist eine kleine, recht flotte DLL. Die verwende ich selbt und auch große Archive sind flott entpackt.
 
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.377
Standort
in der Nähe eines Rechners
Hallo,
ich habe nur eine kurze frage, wie kann ich in Zip Dateien rein gucken mit Visual Basic. Ich möchte da nämlich eine xml drauß lesen ohne die zips immer auspacken zu müssen, hoffentlich geht das, ansonsten heißt es ja immer auspacken in einen temp Ordner.
Im Grunde musst du nur das Zip-Programm (welches auch immer du hast) im Öffnungsmodus aus VB heraus aufrufen mit der Datei.
Dann kannst du die eine Datei rausnehmen .... fertig. Du musst ja nicht ENTpacken.
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Hmm, das geht also auch mit Archiven die so 1gb groß sind. Das Problem ist nämlich das nicht jeder das selbe zip Programm hat und das es wichtig ist, dass es auch allen Systemen läuft die Windows nutzen.
 
A

AlienJoker

Gast
Wenn du ein eigenes Programm schriebst würde ich ein entsprechendes Plugin mitgeben.
Das geht mit 7Zip (aber nur schlecht) oder mit ionic Zip. Ionic erlaubt zumindest gezielt eine Datei auszupacken und nicht das gesamte Archiv (klick).
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Ach so, das ist natürlich gut, weil es ja nur um eine Datei geht. Ich erde mich dort mal einarbeiten. Vielleicht auch in C# wobei ich VB deutlich einfacher finde.
 
A

AlienJoker

Gast
Geht beides, ich verwende die Bibliothek unter VB .net und damit geht es in jedem VisualStudio-bereich, das ist ja der Gag an .net.
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Allgemein finde ich die .net Sache mal eine gute Erfindung von Microsoft vor allem, weil man sie auch kostenlos nutzen kann.
 
A

AlienJoker

Gast
Zumal die freien Versionen dadurchaus recht gut sind und kaum Nachteile mitbringen (beruflich habe ich allerdings die "pro" von VS2008)
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
So,
ich habe die DLL Ionic.Zip.dll nun als Verweis hinzugefügt. Das ist ja soweit schön und gut, nur versteht er eine Variable nicht. Er schmeißt die Fehlermeldung 'Der Typ "ZipFile" ist nicht definiert.' raus.
Hier mal der Code:
Code:
Imports Ionic.Zlib

Public Class Haupt

    Private Sub cmdrefresh_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdrefresh.Click
        Dim ZipToUnpack As String = "C:\Users\Niklas\Desktop\test.zip"
        Dim TargetDir As String = "C:\Users\Niklas\Desktop"
        Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir)
        Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack)
            AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress
            Dim e As ZipEntry
            ' here, we extract every entry, but we could extract    
            ' based on entry name, size, date, etc.   
            For Each e In zip1
                e.Extract(TargetDir, ExtractExistingFileAction.OverwriteSilently)
            Next
        End Using
    End Sub
End Class
Ich weiß nicht ob ich die Imports Anweisung wirklich brauche oder nicht. Habe es aber einfach mal gemacht. Was muss ich ändern damit es geht? Google schweigt darüber. Da gibt es nur Lösungen irdenen entweder gar nichts Importiert wird oder einfach alles was die Ionic so her gibt. Habe beides ausprobiert, war das selbe Ergebnis.
 
A

AlienJoker

Gast
füge mal noch ein imports ionic.zip hinzu, ansonsten musst du bis Montag warten, bis ich ins Büro komme.
Ich hatte da auch anfangs Probleme.

/edit:
Habe mal nachgesehen (wozu gibts remotedesktops ;)): Zipfile gehört in die Klasse Ionic.zip
Also entweder:
Using MyZip as Ionic.zip.zipfile
oder
imports Ionic.zip
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Also wenn ich das ganze Importiere kommen Fehler und wenn ich das ganze direkt davor schreibe auch. Sind aber beides die selben Fehler.Daher ist das wohl egal.
Also hier die Fehler:
"MyExtractProgress" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.
Die Variable "e" verbirgt eine Variable in einem einschließenden Block.​
Der Code ist genau der selbe nur mit dem altem Import weg und dem ionic.zip hin.
 
A

AlienJoker

Gast
Statt dem abgeguckten Code würde ich den handler für den progress einfach entsorgen, also:
Code:
Imports Ionic.Zlib
Imports Ionic.zip
Public Class Haupt

    Private Sub cmdrefresh_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdrefresh.Click
        
        Dim ZipToUnpack As String = "C:\Users\Niklas\Desktop\test.zip"
        Dim TargetDir As String = "C:\Users\Niklas\Desktop[COLOR="Red"]\[/COLOR]"
        Dim e As ZipEntry

        Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack)
            For Each e In zip1
                e.Extract(TargetDir, ExtractExistingFileAction.OverwriteSilently)
            Next
        End Using
    End Sub
End Class
Außerdem sollte der zielpfad mit einem "\" enden. Schadet zumindest nicht.

Edit: bei mir sieht das im Endeffekt genauso aus:
Code:
Using zip1 As ZipFile = ZipFile.Read(strPath & "\" & objFile.Name)
    Dim zFile As ZipEntry
    For Each zFile In zip1
        zFile.Extract(strPath, ExtractExistingFileAction.OverwriteSilently)
    Next
End Using
Was immer hilft, ist ein Haltepunkt und eine Überwachung auf die Instanz von "zip1". Da kann man auch einiges ableiten, z.B. wie man an einzelne bestimmte Dateien herankommt.
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Sehr gut so funktioniert es. Ich muss mich in die Dll noch einarbeiten, später denke ich ist es doch schon sehr nützlich das mal gemacht zu haben. Das Windows auch immer diesen Backslash hat, ich glaube der ist nur auf der Tastatur für Windows.
 
A

AlienJoker

Gast
Freut mich, wenns klappt. Das Tool ist zwar 2 Jahre alt, aber immernoch erste Sahne und darf frei verwendet werden.
 
nka

nka

Threadstarter
Mitglied seit
29.03.2010
Beiträge
699
Standort
Hamburg
Das alter eines Tools muss ja nicht ausschlaggebend sein. Ich denke der Nutzen daraus ist wichtig. Wenn ich irgendeinen Codeblock von 1995 finde der immer noch super funktioniert, dann nutze ich den auch, ich bin ja nicht blöd und zerbreche mir dann erneut den Kopf.

P.S. Die Variable e hatte übrigens nie etwas damit zu tun, die wurde bloß oben im Button Click Sub schon Deklariert.
 
Thema:

In zip datein gucken via Visual Basic

Sucheingaben

vba zip Datei lesen

,

excel vba auslesen einer gezippten datei

,

vb.net aus zip datei lesen

In zip datein gucken via Visual Basic - Ähnliche Themen

  • Windows 10 entpackt Zip Dateien automatisch. Wie ändere ich das?

    Windows 10 entpackt Zip Dateien automatisch. Wie ändere ich das?: Windows 10 entpackt Zip Dateien automatisch. Wie ändere ich das?
  • ZIP-Dateien mit Explorer Windows 10 öffnen

    ZIP-Dateien mit Explorer Windows 10 öffnen: Hallo, nach der Erstinstallation von Windows 10, hat Windows den Explorer verwendet um ZIP-Dateien zu öffnen bzw. deren Inhalt anzuzeigen. Ich...
  • Windows Defender blockiert .rar und .zip Dateien?

    Windows Defender blockiert .rar und .zip Dateien?: Hallo Zusammen! seit geraumer Zeit habe ich konstant Probleme mit Windows Defender. Wenn ich .zip oder .rar Dateien runterlade, kommt diese...
  • Probleme bei .ZIP Dateien

    Probleme bei .ZIP Dateien: Hallo und schönen guten Abend! Ich habe seit ein paar Tagen ein Problem mit dem Entzippen von Download-Files und komm einfach nicht dahinter...
  • Zip Datein öffnen ohne zu speichern

    Zip Datein öffnen ohne zu speichern: Moin Leude, ich habe das Problem das ich im Outlook beim öffnen von *.zip Datein immer eine Sicherheitsabfrage bekomme die mir nur die...
  • Ähnliche Themen

    Oben