¿Cómo comprimo varios archivos en un solo archivo con Delphi?
-
03-07-2019 - |
Pregunta
Necesito comprimir varios archivos en un solo archivo usando Delphi. Prefiero usar componentes freeware o componentes de código abierto porque soy muy muy barato :-)
Mis requisitos principales son:
- Es posible cifrar el archivo
- Puede crear archivos comunes que cualquier persona puede abrir con una copia de WinZip
¿Alguien tiene sugerencias con los componentes que han utilizado? Por favor, siéntase libre de sugerir componentes / bibliotecas tanto comerciales como gratuitas.
Solución
Quizás DelphiZip es lo que estás buscando, parece que también admite el cifrado, y es WinZip compatible. Se publica bajo licencia LGPL.
Otros consejos
KaZip es un archivador de código abierto de código abierto. Aquí está su descripción:
KAZIP es un archivador ZIP rápido y simple y dearchiver que utiliza ZIP más popular Formato.Inflate - Desinflar zip formato de compresión (sin cifrado) soporte y sin multidisco soporte) .KAZip está totalmente basado en Delphi VCL - sin DLL, ActiveX u otro bibliotecas externas .KAZip es totalmente Corriente orientada para que pueda lidiar con Datos solo en memoria sin crear archivos temporales, etc. Si necesita agrega la funcionalidad zip-descomprimir a tu aplicación, KAZIP es el derecho solución. ZipListView adicional y Componentes ZipTreeView para fácil Visualización.Funcionalidad: Zip-Unzip. utilizando Inflate-DeflateBZip2 descomprimir a través del uso de unidades BZIP2 de Edison Mera Menndez.Funciones: Agregando Archivos, Carpetas, Streams; Seleccionando, Deseleccionando, Comprobando; Extrayendo a archivos y flujos; eliminar y cambiar nombre FilesCreate, Delete y Rename CarpetasPrueba, ReparaciónMuchas nuevas propiedades y métodos, velocidad mejorada.Una muy compleja aplicación de demostración del navegador Zip esta incluido
Todavía no es compatible con Delphi 2009, pero con algunos cambios menores en el código fuente, también puede hacer que funcione en Delphi 2009. En realidad, eso es lo que hice.
Saludos
Estoy usando madZip de madCollection
Me sorprende que nadie haya mencionado JclCompression todavía, es parte de la conocida Biblioteca de Código Jedi (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 recientes no sean compatibles con versiones anteriores ...
Recomiendo $ 69 ZipForge de ComponentAce.
Puede usar enlaces 7zip (LZMA) para Pascal (compatible con Delphi): http: // www.birtles.org.uk/programming/
Otro recurso de Delphi para ver sería InnoSetup . El código fuente está disponible y con un poco de trabajo podría darle una ventaja sobre lo que está tratando de hacer. Hay una opción para crear archivos zip autoextraíbles que sean compatibles con WinZip,
Mis pensamientos no son usar el programa, sino usar su fuente como punto de partida, ya que está muy probado y es extremadamente sólido.
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.