Wir haben Dateien, die in verschiedene Kategorien gruppiert sind, sagen CatA
.. CatD
. Jede Kategorie hat einen zugeordneten Ordner, der vom Benutzer konfiguriert werden kann. Zum Beispiel geht CatA
zu C:\Path\To\CatA
, CatB
zu C:\Path\To\CatB
und CatC
und CatD
gehen zu C:\Path\To\CatCD
.VCLZip: "Virtuelle" Verzeichnisse in Zip-Datei
Jetzt möchte ich zum Sichern und Wiederherstellen dieser Dateien in/aus einer ZIP-Datei nach einer Spezifikation wie
[CatA]
SomeFile.abc
*.txt
[CatB]
File3.xyz
File4.xyz
.
.
.
Die resultierende ZIP-Datei eine Struktur wie
dieseCatA
SomeFile.abc
aaa.txt
bbb.txt
ccc.txt
CatB
File3.xyz
File4.xyz
.
.
.
ich es geschafft haben sollte, mit VCLZip durch mehrere Aufrufe an die Zip
und UnZip(Selected)
Methoden pro Job und ein bisschen Hacker mit der Pathname-Eigenschaft. Allerdings würde ich einen Anruf zu Zip
/UnZip(Selected)
bevorzugen, so dass VCLZip den gesamten Fortschritt genauer berechnen kann und ich einen weniger jumpy Fortschrittsbalken bekomme.
Ich konnte dies umzusetzen, indem (ab) die TVCLUnzip.FilesList.Objects
Eigenschaften mit einigen pro Datei Kategorie info in einen OnStartZip
Handler „Transfer“ wo kann ich dann ZipHeader.directory
manipulieren, aber dies scheint viel zu kompliziert und zerbrechlich, so hoffe ich, Es gibt eine einfachere Lösung, die ich einfach nicht sehe. Irgendwelche Ideen?
Die Online-Hilfe für 'OnStartZip' hat ein Beispiel, das die Pfade im letzten Moment ändert, und erwähnt, welche anderen Eigenschaften sicher geändert werden können. Die einzige Sache, die für Sie etwas komplizierter ist, ist, die richtigen Informationen basierend auf dem übergebenen Dateinamen zurück zu bekommen, und Sie haben es bereits geschafft, das zu lösen. Ich würde es so halten. – hvd