Ziplib
Zuletzt geändert: 28.02.2026 18:13

ZIPLIB #

Das ZIPLIB-Objekt ermöglicht das Erstellen, Lesen und Bearbeiten von ZIP-Archiven.

Set Zip = Client.CreateObject("ZIPLIB", "")

Übersicht #

Eigenschaften #

EigenschaftTypBeschreibung
ArchiveFilestringPfad zur ZIP-Datei (mit .zip-Erweiterung)
OverwriteFilesBooleanExistierende Dateien beim Entpacken überschreiben (Standard: False)
CompressionLevelIntegerKomprimierungsstufe 0–6 (0 = keine, 6 = maximal)
PasswordstringPasswort für Verschlüsselung (leer = keine)
EncryptionAlgorithmIntegerVerschlüsselungsalgorithmus (nur relevant wenn Password gesetzt)
RecurseSubdirectoriesBooleanBei IncludeFiles auch Unterverzeichnisse durchsuchen
ExtractToPathstringZielverzeichnis zum Entpacken (muss mit \ enden)
ZipCommentstringGlobaler Kommentar für das ZIP-Archiv

Methoden — Erstellen #

MethodeBeschreibung
IncludeFiles(Filenames)Dateien zur Komprimierungsliste hinzufügen (Pipe-getrennt)
ExcludeFiles(Filenames)Dateien von der Komprimierung ausschließen
CompressZIP-Archiv erstellen
AppendFilesDateien zu bestehendem Archiv hinzufügen
ResetObjekt auf Standardwerte zurücksetzen

Methoden — Lesen/Entpacken #

MethodeBeschreibung
ScanArchivstruktur einlesen
Extract(Filenames)Bestimmte Dateien entpacken
ExtractAllAlle Dateien entpacken
Delete(Filenames)Dateien aus Archiv löschen
Update(Filenames)Dateien im Archiv aktualisieren
AbortLaufende Operation abbrechen

Datei-Informationen (nach Scan/Compress) #

MethodeRückgabeBeschreibung
FileCountIntegerAnzahl der Dateien im Archiv
FileCompressedName(Index)stringDateiname im Archiv
FileDecompressedName(Index)stringDateiname beim Entpacken (änderbar)
FileCompressedSize(Index)Int64Komprimierte Größe in Bytes
FileDecompressedSize(Index)Int64Unkomprimierte Größe in Bytes
FileCompressedDate(Index)Int64Änderungsdatum (Timestamp)
FileCRC(Index)Int64CRC-Prüfsumme
FilePasswordRequired(Index)BooleanDatei ist verschlüsselt
FileAttributes(Index)IntegerDateiattribute (Bitmask)
FileComment(Index)stringKommentar pro Datei (änderbar)
FileCompressionLevel(Index)IntegerKomprimierungsstufe pro Datei (änderbar)

Erweiterte Methoden #

MethodeBeschreibung
SetConfig(Key, Value) / GetConfig(Key)Erweiterte Konfigurationsoptionen
FindFirstPopulatedFolderGemeinsamer Wurzelordner aller Dateien (nach Scan)
ExtractFirstPopulatedFolderHauptordner-Inhalt direkt nach ExtractToPath entpacken
ExtractFolder(Folder)Nur bestimmten Ordner entpacken

Eigenschaften #

EncryptionAlgorithm #

Verschlüsselungsalgorithmus. Nur relevant wenn Password gesetzt ist.

WertKonstanteBeschreibung
0eaDefaultStandard ZIP-Verschlüsselung (schwach)
1eaAESWeakAES 128-bit (gleicher Salt für alle Dateien)
2eaAESStrongAES 192-bit (individueller Salt pro Datei)
3eaAESMaximumAES 256-bit (individueller Salt pro Datei)

Hinweis: AES-Verschlüsselung ist kompatibel mit WinZip 9.0. Für 128-bit wird ein 32-stelliges, für 256-bit ein 64-stelliges Passwort empfohlen.

FileAttributes #

Dateiattribute als Bitmask (lesbar und änderbar über SetFileAttributes):

WertBedeutung
1Readonly
2Hidden
4System
16Directory
32Archive

Methoden #

IncludeFiles #

procedure IncludeFiles(Filenames: string)

Fügt Dateien zur Liste der zu komprimierenden Dateien hinzu. Mehrere Dateien werden durch Pipe-Zeichen (|) getrennt. Wildcards (*, ?) werden unterstützt. Es wird kein Fehler ausgelöst, wenn eine Datei nicht vorhanden ist.

Beispiele:

  • "C:\Temp\Daten\rechnung.pdf" - Einzelne Datei
  • "C:\Temp\Daten\*.pdf" - Alle PDF-Dateien
  • "C:\Temp\Daten\a.pdf|C:\Temp\Daten\b.pdf" - Mehrere Dateien

Extract #

procedure Extract(Filenames: string)

Entpackt bestimmte Dateien aus dem Archiv nach ExtractToPath.

Beispiele:

  • "dokument.pdf" - Einzelne Datei
  • "*.pdf" - Alle PDF-Dateien
  • "ordner/" - Ganzen Ordner (mit Slash am Ende)

Beispiele #

A. ZIP-Archiv erstellen #

Option Explicit

Dim Zip
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Export\dokumente.zip"
Zip.OverwriteFiles = True
Zip.CompressionLevel = 6

' Dateien hinzufügen (Pipe-getrennt)
Zip.IncludeFiles "C:\Temp\Daten\rechnung1.pdf|C:\Temp\Daten\rechnung2.pdf|C:\Temp\Daten\index.xml"

' ZIP erstellen
Zip.Compress

Set Zip = Nothing
ellib.ShowMessage "ZIP-Archiv erstellt!"

B. ZIP-Archiv mit Passwort erstellen #

Option Explicit

Dim Zip
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Export\geheim.zip"
Zip.OverwriteFiles = True
Zip.Password = "MeinGeheimesPasswort123"
Zip.EncryptionAlgorithm = 2  ' AES Strong

Zip.IncludeFiles "C:\Temp\Daten\vertraulich.pdf"
Zip.Compress

Set Zip = Nothing

C. ZIP-Archiv entpacken #

Option Explicit

Dim Zip
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Download\archiv.zip"
Zip.ExtractToPath = "C:\Temp\Entpackt\"
Zip.OverwriteFiles = True

Zip.ExtractAll

Set Zip = Nothing
ellib.ShowMessage "Archiv entpackt!"

D. Inhalt eines ZIP-Archivs auflisten #

Option Explicit

Dim Zip, i, msg
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Download\archiv.zip"
Zip.Scan

msg = "Dateien im Archiv:" & vbCrLf & vbCrLf
For i = 0 To Zip.FileCount - 1
  msg = msg & Zip.FileCompressedName(i) & _
        " (" & Zip.FileDecompressedSize(i) & " Bytes)" & vbCrLf
Next

Set Zip = Nothing
ellib.ShowMessage msg

E. Nur bestimmte Dateien entpacken #

Option Explicit

Dim Zip
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Download\archiv.zip"
Zip.ExtractToPath = "C:\Temp\Entpackt\"
Zip.OverwriteFiles = True

' Nur PDF-Dateien entpacken
Zip.Extract "*.pdf"

Set Zip = Nothing

F. Dateien zu bestehendem Archiv hinzufügen #

Option Explicit

Dim Zip
Set Zip = Client.CreateObject("ZIPLIB", "")

Zip.ArchiveFile = "C:\Temp\Export\dokumente.zip"
Zip.IncludeFiles "C:\Temp\Daten\nachtrag.pdf"
Zip.AppendFiles

Set Zip = Nothing
ellib.ShowMessage "Datei hinzugefügt!"

Siehe auch #