gerz0ckerz
Goto Top

Visual Baisc Wie kann ich eine Zip Rar Datei entpacken ohne externe Programme?

Hallo,


Ich arbeite Momentan an einem kleinen Projekt mit einem Updater. Da man, soweit ich es mitbekommen habe keine Ordner ohne weiteres von einem FTP Server herunterladen kann, dachte ich, mir packe ich den Ordner mit 4 Unterordnern, einer .exe und einer .application Datei in eine ZIP und lade die runter und entpacke sie anschließend. Es funktioniert alles problemlos bis auf das Entpacken. Ich habe es bereits schon mit der System.IO.Compression.dll versucht, jedoch funktioniert dies auch nicht. Kennt jemand einen einfachen Weg dieses problem zu lösen?

Danke im Vorraus face-smile

Content-ID: 297491

Url: https://administrator.de/contentid/297491

Ausgedruckt am: 08.11.2024 um 17:11 Uhr

114757
114757 26.02.2016 aktualisiert um 18:30:38 Uhr
Goto Top
Moin,
geht es hier um VB.Net oder VBA ? Wird leider aus deinem Post nicht ganz klar.

Wenn's sich um VBA/VBS und simple ZIP-Dateien handelt, here you go:
Sub ExtractZip (zipFile, sFolder)
    With CreateObject("Scripting.FileSystemObject")  
        zipFile = .GetAbsolutePathName(zipFile)
        sFolder = .GetAbsolutePathName(sFolder)
    End With

    With CreateObject("Shell.Application")  
        .NameSpace(sFolder).CopyHere .NameSpace(zipFile).Items, 16
    End With
End Sub
Gruß jodel32
GERz0cKErZ
GERz0cKErZ 26.02.2016 aktualisiert um 18:54:57 Uhr
Goto Top
Zitat von @114757:
>         .NameSpace(sFolder).CopyHere .NameSpace(zipFile).Items, 16
> 

Bekomme bei Items, 16 einen Fehler: Methodenargumente müssen in Klammern stehen.
Es geht übrigens um VB.net
114757
114757 26.02.2016 aktualisiert um 20:06:25 Uhr
Goto Top
Bekomme bei Items, 16 einen Fehler: Methodenargumente müssen in Klammern stehen.
Es geht übrigens um VB.net
Logisch wenn du meinen Kommentar dazu gelesen hättest face-wink, das war ja VBA/VBS und nicht VB.NET !
Wenn man will lässt sich das aber auch für vb.net umschreiben, aber wieso wenn es ja den Namespace System.IO.Compression gibt.
Ich habe es bereits schon mit der System.IO.Compression.dll versucht, jedoch funktioniert dies auch nicht. Kennt jemand einen einfachen Weg dieses problem zu lösen?
Wo war dabei das Problem ?? Da gibt es absolut keins, das funktioniert einwandfrei so lange man ein aktuelles .NET Framework ab 4.5 verwendet ...
ZipFile.ExtractToDirectory
GERz0cKErZ
GERz0cKErZ 26.02.2016 um 20:25:53 Uhr
Goto Top
Nun bekomme ich den Fehler: Das Ende des Datensatzes im zentralen Verzeichnis wurde nicht gefunden.

ZipFile.ExtractToDirectory("Pfad\blabla.zip", "Pfad")  

Was bedeutet das?
114757
114757 26.02.2016 aktualisiert um 20:37:57 Uhr
Goto Top
Dann wurde ein vom .NET nicht unterstützer Komprimierungsalgorithmus (z.B. deflate64) beim Erstellen des Zip-Files verwendet.
GERz0cKErZ
GERz0cKErZ 26.02.2016 um 20:50:28 Uhr
Goto Top
Zum komprimieren habe ich Deflate benutzt. Dieser Komrimierungsalgorithmus wird doch unterstützt oder nicht?
114757
114757 27.02.2016 aktualisiert um 15:41:51 Uhr
Goto Top
Ja, geht hier mit einem von Windows selbst und WinRAR erzeugten ZIP-File einwandfrei. Dein File muss also irgendetwas unreguläres enthalten.
Ein RAR mit ZIP-Erweiterung kannst du damit natürlich nicht entpacken, das sollte klar sein.