Zippen/Entpacken von Dateien und Ordnern mit diesen Befehlen

Bevor wir Dateien austauschen (z. B. per E-Mail), komprimieren wir sie oft, um ihre Größe vor der Übertragung zu verringern. Mit 4D v18 können Sie Ihre Dateien durch Programmierung komprimieren und dekomprimieren, ohne dass Sie externe Bibliotheken oder Tools benötigen. Hier sind die neuen Befehle, die dies ermöglichen:

HDI Beispiel

Komprimieren von Dateien und Ordnern

Der neue Zip Create archive ermöglicht es Ihnen, ein Zip-Archiv zu erstellen, indem Sie entweder eine Datei, einen Ordner oder ein Objekt mit Parametern(z. B. ein Passwort zum Lesen des Archivs) übergeben.

Komprimieren Sie eine Datei:

C_OBJECT($file;$destination)
$destination :=Folder(fk desktop folder).file("MyDocs/file.zip")
$file :=Folder(fk desktop folder).file("MeineDokumente/Text.txt")
ZIP Create archive ($file;$destination)

Einen Ordner komprimieren:

C_OBJECT($folder;$destination)
$destination :=Folder(fk desktop folder).file("MyDocs/Images.zip")
$folder :=Folder(fk desktop folder).folder("MyDocs/Images")
ZIP Create archive ($folder;$destination)

Komprimieren mit Passwort und Fortschrittsbalken:

C_OBJECT($zip)
$destination :=Folder(fk desktop folder).file("MyDocs/Archive.zip")
$zip :=New object
$zip .files:=Folder(fk desktop folder).folder("MyDocs/Resources").folders()
$zip .password:="Passwort"
$zip .callback:=Formula(FormulaCompressing ($1))

progID :=Progress New
ZIP Create archive ($zip;$destination)
Progress QUIT (progID)

Die Methode FormulaCompressing:

Progress SET PROGRESS (progID;Num($1/100))

Dekomprimieren von Dateien und Ordnern

Ein neuer ZIP Read archive Befehl gibt ein Archivobjekt zurück. Durch Manipulation dieses Objekts können Sie auf einfache Weise die Liste der Dateien innerhalb des Archivs abrufen, eine bestimmte Datei oder das gesamte Archiv extrahieren usw.

Lesen Sie den Inhalt des Archivs

C_OBJECT($archive;$path)
$path :=Folder(fk desktop folder).file("MyDocs/Archive.zip")
$archive :=ZIP Read archive($path)

Abrufen der Liste von Dateien und Ordnern

$folders:=$archive.root.folders()
$files :=$archive.root.files()

Lesen des Inhalts einer Datei ohne Extraktion

If ($files[$i].extension=".txt")
$txt :=$files[$i].getText()
Else
$blob :=$files[$i].getContent()
End if

Datei aus dem Archiv extrahieren

$folderResult:=$files[$i].copyTo(Folder(fk desktop folder).folder("MyDocs"))

Alle Dateien extrahieren

$folderResult:=$archive.root.copyTo(Folder(fk desktop folder).folder("MyDocs"))

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.