Como faço para compactar vários arquivos em um único arquivo com Delphi
-
03-07-2019 - |
Pergunta
Eu preciso compactar vários arquivos em um único arquivo usando Delphi. Eu prefiro usar componentes freeware ou componentes de código aberto, porque eu sou muito, muito barato: -)
Meus requisitos principais são:
- Possível para criptografar o arquivo
- É possível criar arquivos comuns que podem ser abertas por qualquer pessoa com uma cópia do WinZip
Alguém tem sugestões com componentes que eles usaram? Por favor, fique à vontade para sugerir gratuito, bem como componentes comerciais / bibliotecas.
Solução
DelphiZip é o que você está procurando, parece criptografia suporte, também, e é WinZip compatível. Ele é liberado sob a LGPL.
Outras dicas
KaZip é um arquivador ZIP open-source. Aqui está sua descrição:
KAZIP é rápido, simples arquivador ZIP e dearchiver que usa ZIP mais popular format.Inflate - Deflate zip formato de compressão (sem criptografia apoio e não multidisk suporte) .KAZip é totalmente baseado em Delphi VCL - não DLL, ActiveX ou outro bibliotecas externas .KAZip é totalmente córrego orientada para que possa lidar com dados apenas na memória sem criar arquivos temporários, etc. Se você precisa adicionar funcionalidade zip-unzip a seu aplicação, KAZIP é o direito solução. ZipListView adicional e componentes ZipTreeView para fácil visualisation.Functionality: Zip-Descompacte usando inflar-DeflateBZip2 descompactação uso da calha de unidades de BZIP2 Menndez.Functions Edison Mera: Adicionando Arquivos, pastas, córregos; A seleção, Desmarcando, Verificação; Extraindo a arquivos e córregos; apagar e renomear filesCreate, apagar e renomear foldersTest, novas propriedades RepairMany e métodos, melhorou muito speed.A Aplicativo navegador demonstração Zip complexo está incluído
Não é compatível com Delphi 2009 ainda, mas com algumas pequenas alterações no código fonte, você pode fazê-lo funcionar em Delphi 2009 também. Na verdade, é isso que eu fiz.
Saudações
Estou usando madZip de madCollection
Estou surpreso que ninguém tenha mencionado JclCompression ainda - é parte do Código Biblioteca conhecido Jedi (JCL). Aqui está uma visão da própria unidade: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup
Note, que é compatível com 7-zip DLL versão 4.64 - versões mais recentes pode não ser compatível com versões anteriores ...
Eu recomendo os US $ 69 ZipForge de ComponentAce.
Você pode usar 7zip ligações (LZMA) para Pascal (compatível com Delphi): http: // www.birtles.org.uk/programming/
Outro recurso Delphi para olhar seria InnoSetup . O código fonte está disponível e com um pouco de trabalho pode lhe dar uma vantagem sobre o que sua tentativa de fazer. Há uma opção para criar auto-extraível arquivos zip que são compatíveis com WinZip,
Os meus pensamentos não são para usar o programa, mas para usar a sua fonte como um ponto de partida, uma vez que é muito fortemente testados e extremamente sólida.
Há infozips zip32 e unzip32 dlls. Eles podem ser usados ??a partir de Delphi (mesmo a partir do Visual Basic), há interface de unidades / módulos para ambos. A interface não é tão bom como eu teria gostado, mas funciona.