VB 5/6-Tipp 0803: ZIP und UNZIP mit Windows-Bordmitteln (einfaches Beispiel)
von Stephan
Beschreibung
Um Dateien oder Ordner in eine ZIP-Datei zu packen oder diese wieder zu entpacken, gibt es bereits viele Beispiele im Internet zu finden.
Meistens verweisen diese jedoch auf zusätzliche DLLs oder Kommandozeilen-Tools, die in bestehende Projekte meist nur aufwändig einzubinden sind.
Folgendes Beipiel zeigt, wie zip und unzip mit der Windows eigenen Shell funktioniert.
Damit das ganze übersichtlich bleibt wurde der Code auf ein Minimum beschränkt.
Wichtig: Die definierten Konstanten müssen Sie vorher natürlich anpassen.
P.S.: Im Beispielprojekt finden Sie einen zusätzlichen Ordner mit einer weiteren Variante ... dort sind die Routinen in eine Klasse gepackt (ist vielleicht sogar übersichtlicher).
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '------ Anfang Formular "frmTest_Zip" alias Form1.frm ------ ' Steuerelement: Schaltfläche "butUnzip" ' Steuerelement: Schaltfläche "butZIP" 'ACHTUNG: ' Konstanten zuerst anpassen Private Const Quelldokument As String = "E:\TEMP\Test.txt" 'Funktioniert auch, wenn ein Ordner angegeben wird Private Const ZIP As String = "E:\TEMP\Test.zip" Private Const Ordner As String = "E:\TEMP\Test_entpackt\" Private ZIPHeader As String Private Sub ZIP_entpacken(ByVal Zipdatei, ByVal Zielordner) 'Achtung: Übergabe-Variablen Zipdatei und Zielordner müssen als Variant definiert sein Dim SHELL As Object Set SHELL = CreateObject("Shell.Application") SHELL.Namespace(Zielordner).CopyHere SHELL.Namespace(Zipdatei).items, Nothing Set SHELL = Nothing End Sub Public Sub Zip_komprimieren(ByVal Quelldatei, ByVal Zipdatei) Dim SHELL As Object Set SHELL = CreateObject("Shell.Application") 'Eine leere Zipdatei erstellen ... wird von der Shell benötigt '(Achtung: Eine vorhandene Zipdatei wird hier ohne Nachfrage überschrieben) CreateEmptyZip Zipdatei 'ZIP-Datei erstellen SHELL.Namespace(Zipdatei).CopyHere Quelldatei Set SHELL = Nothing End Sub Private Sub CreateEmptyZip(ByVal Zipdatei As String) 'Header für ZIP-Datei definieren ZIPHeader = Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, Chr$(0)) 'leere Zipdatei schreiben Open Zipdatei For Output As #1 Print #1, ZIPHeader; Close #1 End Sub Private Sub butZIP_Click() Zip_komprimieren Quelldokument, ZIP MsgBox "fertig" End Sub Private Sub butUnzip_Click() ZIP_entpacken ZIP, Ordner MsgBox "fertig" End Sub '------- Ende Formular "frmTest_Zip" alias Form1.frm ------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.