Tenemos archivos que están agrupados en diferentes categorías, por ejemplo CatA
.. CatD
. Cada categoría tiene una carpeta asociada que puede ser configurada por el usuario. Por ejemplo, CatA
va a C:\Path\To\CatA
, CatB
a C:\Path\To\CatB
y CatC
y CatD
va al C:\Path\To\CatCD
.VCLZip: directorios "virtuales" en el archivo zip
Ahora quiero hacer copia de seguridad y restaurar estos archivos en/desde un archivo zip de acuerdo con una especificación como
[CatA]
SomeFile.abc
*.txt
[CatB]
File3.xyz
File4.xyz
.
.
.
El archivo zip resultante debe tener una estructura como
CatA
SomeFile.abc
aaa.txt
bbb.txt
ccc.txt
CatB
File3.xyz
File4.xyz
.
.
.
he conseguido este con VCLZip realizando llamadas múltiples a los métodos Zip
y UnZip(Selected)
por trabajo y un poco de hackeo con la propiedad Pathname. Sin embargo, preferiría una llamada a Zip
/UnZip(Selected)
para que VCLZip pueda calcular el progreso general con más precisión y obtengo una barra de progreso menos vacilante.
que fue capaz de poner en práctica este por (ab) uso de los TVCLUnzip.FilesList.Objects
propiedades de "transferencia" alguna por categoría de información de archivo en un controlador OnStartZip
donde puede entonces manipular ZipHeader.directory
, pero esto parece demasiado complicado y frágil, así que espero hay una solución más directa que simplemente no veo. ¿Algunas ideas?
La ayuda en línea para 'OnStartZip' tiene un ejemplo que cambia las rutas en el último momento y menciona qué otras propiedades se pueden cambiar sin peligro. Lo único que es un poco más complicado para usted es recuperar la información correcta basada en el nombre del archivo pasado, y ya logró resolver eso. Lo mantendría así. – hvd