ZIPLIB #
Das ZIPLIB-Objekt ermöglicht das Erstellen, Lesen und Bearbeiten von ZIP-Archiven.
Set Zip = Client.CreateObject("ZIPLIB", "")
Übersicht #
Eigenschaften #
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
ArchiveFile | string | Pfad zur ZIP-Datei (mit .zip-Erweiterung) |
OverwriteFiles | Boolean | Existierende Dateien beim Entpacken überschreiben (Standard: False) |
CompressionLevel | Integer | Komprimierungsstufe 0–6 (0 = keine, 6 = maximal) |
Password | string | Passwort für Verschlüsselung (leer = keine) |
EncryptionAlgorithm | Integer | Verschlüsselungsalgorithmus (nur relevant wenn Password gesetzt) |
RecurseSubdirectories | Boolean | Bei IncludeFiles auch Unterverzeichnisse durchsuchen |
ExtractToPath | string | Zielverzeichnis zum Entpacken (muss mit \ enden) |
ZipComment | string | Globaler Kommentar für das ZIP-Archiv |
Methoden — Erstellen #
| Methode | Beschreibung |
|---|---|
IncludeFiles(Filenames) | Dateien zur Komprimierungsliste hinzufügen (Pipe-getrennt) |
ExcludeFiles(Filenames) | Dateien von der Komprimierung ausschließen |
Compress | ZIP-Archiv erstellen |
AppendFiles | Dateien zu bestehendem Archiv hinzufügen |
Reset | Objekt auf Standardwerte zurücksetzen |
Methoden — Lesen/Entpacken #
| Methode | Beschreibung |
|---|---|
Scan | Archivstruktur einlesen |
Extract(Filenames) | Bestimmte Dateien entpacken |
ExtractAll | Alle Dateien entpacken |
Delete(Filenames) | Dateien aus Archiv löschen |
Update(Filenames) | Dateien im Archiv aktualisieren |
Abort | Laufende Operation abbrechen |
Datei-Informationen (nach Scan/Compress) #
| Methode | Rückgabe | Beschreibung |
|---|---|---|
FileCount | Integer | Anzahl der Dateien im Archiv |
FileCompressedName(Index) | string | Dateiname im Archiv |
FileDecompressedName(Index) | string | Dateiname beim Entpacken (änderbar) |
FileCompressedSize(Index) | Int64 | Komprimierte Größe in Bytes |
FileDecompressedSize(Index) | Int64 | Unkomprimierte Größe in Bytes |
FileCompressedDate(Index) | Int64 | Änderungsdatum (Timestamp) |
FileCRC(Index) | Int64 | CRC-Prüfsumme |
FilePasswordRequired(Index) | Boolean | Datei ist verschlüsselt |
FileAttributes(Index) | Integer | Dateiattribute (Bitmask) |
FileComment(Index) | string | Kommentar pro Datei (änderbar) |
FileCompressionLevel(Index) | Integer | Komprimierungsstufe pro Datei (änderbar) |
Erweiterte Methoden #
| Methode | Beschreibung |
|---|---|
SetConfig(Key, Value) / GetConfig(Key) | Erweiterte Konfigurationsoptionen |
FindFirstPopulatedFolder | Gemeinsamer Wurzelordner aller Dateien (nach Scan) |
ExtractFirstPopulatedFolder | Hauptordner-Inhalt direkt nach ExtractToPath entpacken |
ExtractFolder(Folder) | Nur bestimmten Ordner entpacken |
Eigenschaften #
EncryptionAlgorithm #
Verschlüsselungsalgorithmus. Nur relevant wenn Password gesetzt ist.
| Wert | Konstante | Beschreibung |
|---|---|---|
| 0 | eaDefault | Standard ZIP-Verschlüsselung (schwach) |
| 1 | eaAESWeak | AES 128-bit (gleicher Salt für alle Dateien) |
| 2 | eaAESStrong | AES 192-bit (individueller Salt pro Datei) |
| 3 | eaAESMaximum | AES 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):
| Wert | Bedeutung |
|---|---|
| 1 | Readonly |
| 2 | Hidden |
| 4 | System |
| 16 | Directory |
| 32 | Archive |
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 #
- Client.LoadText, SaveText - Text-Dateien lesen und schreiben