Thema: Delphi TZipFile und Add

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#7

AW: TZipFile und Add

  Alt 31. Jan 2021, 18:31
Schau einfach mal die Extract/Add-Methoden an.
* entweder man nimmt einen Dateinamen oder einen TFileStream
* oder man nehme eben einen TMemoryStream beim oldZip.Extract und gibt dann das direkt ins newZip.Add rein. (beim Kopieren ... geht mit dem Stream auch direkt von wo Anders im Programm)




Erstmal kommt es drauf an, wie das Entpackprgramm arbeitet.

Nutzt es den CentralHeader (Verzeichnis) am ZIP-Ende, dann wird dessen Reihenfolge genutzt (machen die meisten Programme)
oder geht es einfach von vorne durch und nutzt die LocalHeader (es gibt ZIP-Programme, die den Stream/Datei mit minimalstem Speicher und schneller ohne hin-und-her-Positionieren durchgehen)
z.B. beim Verarbeiten von ZIP über StdIn bzw. StdOut einer Consolenanwendung, da kann man nicht einfach wieder zurück und muß sequentiell arbeiten.

Die LocalHeader und die Dateidaten werden nicht umsortiert
und so weit ich das grad sehen konnte, wird auch der CentralHeader im TZipFile nicht sortiert. (der wird komplett neu geschrieben, da die neue Datei dort ans Ende aller Dateien eingefügt angehängt wird, vor den CentralHeader, welcher praktisch immer ganz am Ende liegt)

Also ja
* ohne Überschreiben bekommst das Älteste (was zuerst gespeichert wird / alles andere wird Ignoriert)
* und mit Überschreiben das Neuste (was zuletzt gespeichert wurde)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (31. Jan 2021 um 19:59 Uhr)
  Mit Zitat antworten Zitat