¿Cómo comprime múltiples archivos en un solo archivo con Delphi?
compression (8)
Necesito comprimir varios archivos en un solo archivo usando Delphi. Preferiría usar componentes freeware o componentes de código abierto porque soy muy, muy barato :-)
Mis requisitos principales son:
- Posibilidad de encriptar el archivo
- Puede crear archivos comunes que cualquier persona puede abrir con una copia de WinZip
¿Alguien tiene sugerencias con componentes que han utilizado? Por favor, siéntase libre de sugerir libre / componentes comerciales / bibliotecas.
Hay infozips zip32 y unzip32 dlls. Se pueden usar desde Delphi (incluso desde Visual Basic), hay unidades / módulos de interfaz para ambos. La interfaz no es tan buena como me hubiera gustado, pero funciona.
Otro recurso de Delphi para mirar sería InnoSetup . El código fuente está disponible y con un poco de trabajo puede darte una ventaja sobre lo que intentas hacer. Existe una opción para crear archivos zip autoextraíbles que sean compatibles con WinZip,
Mi idea no es utilizar el programa, sino usar su fuente como punto de partida, ya que está muy probado y es extremadamente sólido.
Puede usar enlaces 7zip (LZMA) para Pascal (compatible con Delphi): http://www.birtles.org.uk/programming/
Tal vez DelphiZip es lo que está buscando, parece ser compatible con el cifrado, y es compatible con WinZip. Se lanza bajo LGPL.
Estoy usando madZip de madCollection
Me sorprende que nadie haya mencionado JclCompression aún; es parte de la conocida Jedi Code Library (JCL). Aquí hay una vista de la unidad en sí: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup
Tenga en cuenta que es compatible con 7-zip DLL versión 4.64. Es posible que las versiones más nuevas no sean compatibles con versiones anteriores ...
KaZip es un archivo ZIP de código abierto. Aquí está su descripción:
KAZIP es un archivador ZIP y dearchiver rápido y simple que usa el formato ZIP más popular. Inflado - Deflacta el formato de compresión zip (no admite cifrado y no admite multidiscos) .KAZip está totalmente basado en Delphi VCL - no hay DLL, ActiveX u otras bibliotecas externas .KAZip está totalmente orientado al flujo para que pueda manejar los datos solo en la memoria sin crear archivos temporales, etc. Si necesita agregar la funcionalidad de descomprimir y descomprimir a su aplicación, KAZIP es la solución correcta. Componentes ZipListView y ZipTreeView adicionales para facilitar la visualización. Funcionalidad: Zip-Unzip usando Inflate-DeflateBZip2 descomprimiendo el uso de las unidades BZIP2 de Edison Mera Menndez. Funciones: Agregar archivos, carpetas, secuencias; Selección, anulación de selección, comprobación; extracción de archivos y secuencias; eliminación y cambio de nombre de archivosCreación, eliminación y cambio de nombre de prueba de carpetas, reparaciónMuchas nuevas propiedades y métodos, velocidad mejorada.Se incluye una aplicación de demostración del navegador Zip muy compleja
Aún no es compatible con Delphi 2009, pero con algunos cambios menores en el código fuente, también puedes hacer que funcione en Delphi 2009. En realidad, eso es lo que hice.
Saludos
Recomiendo $ ZipForge de ComponentAce.