Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   System.zip - TZipFile.ZipDirectoryContents (https://www.delphipraxis.net/216104-system-zip-tzipfile-zipdirectorycontents.html)

geldis 29. Okt 2024 08:54

System.zip - TZipFile.ZipDirectoryContents
 
Moin Moin.

Der Befehl

Delphi-Quellcode:
TZipFile.ZipDirectoryContents('XML.zip', XMLPath)
Die vorhandenen Datein nimmt er mit, weigert sich aber kommentarlos zwei Verzeichnisse mitzupacken. Diese sind allerdings auch leer. GELEGENTLICH ist eine Datei dort drin, dann nimmt er das/die Verzeichniss auch mit.

Ich habe jetzt keinen Hinweis auf eine Einstellung gefunden damit er auch leere Verzeichnisse mitnimmt.

Gibt's da was?

geldis

Uwe Raabe 29. Okt 2024 09:17

AW: System.zip - TZipFile.ZipDirectoryContents
 
ZipDirectoryContents iteriert intern über alle Files
Delphi-Quellcode:
TDirectory.GetFiles
. Das schließt aber leere Verzeichnisse aus.

Leere Verzeichnisse kannst du mit AddDirectory hinzufügen, aber das ist natürlich nicht so bequem wie ZipDirectoryContents.

himitsu 29. Okt 2024 09:40

AW: System.zip - TZipFile.ZipDirectoryContents
 
Es kommt auch drauf an.

Oftmals werden nur Dateien einbezogen, womit leere (eigentlich alle) Verzeichnisse ausgeschlossen werden. (macht GIT auch so ... dort nutzt man dann gern Dummyfiles für)

Aber ja, ZIP kann natürlich auch Verzeichniseinträge enthalten.
Tipp: vor dem ZipDirectoryContents einmal mit TDirectory.GetDirectories alles auflisten und in einem FOR-IN mit AddDirectory aufnehmen

geldis 29. Okt 2024 10:00

AW: System.zip - TZipFile.ZipDirectoryContents
 
Okay, alles klar und vielen Dank.

geldis

QuickAndDirty 30. Okt 2024 17:07

AW: System.zip - TZipFile.ZipDirectoryContents
 
Nur aus neugier funktioniert bei Euch
TZIPFILE mit einer anderen Compression als zcDeflate ???

himitsu 30. Okt 2024 17:26

AW: System.zip - TZipFile.ZipDirectoryContents
 
Delphi kennt hat nur Deflate und Uncompressed implementiert.

Du könntest aber selbst die fehlende Komprimierung implementieren und via Interface registrieren.

Es lassen sich aber ZIPs mit anderen Algos öffnen, nur dekomprimieren halt nicht (wenn niemand jenes regisrtiert hat), aber notfalls als RawDaten einzelne Dateien auslesen/speichern.



Ich hatte z.B. verschlüsselte Zips (auf Dateiebene) entpackt und auch wieder gepackt, ohne das Passwort zu kennen. (beim neuen Packen gibt es leider eine kleine Macke, bezüglich des CRC)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz