Come comprimo più file in un singolo archivio con Delphi
-
03-07-2019 - |
Domanda
Devo comprimere più file in un singolo archivio usando Delphi. Preferirei utilizzare componenti freeware o componenti open source perché sono molto economico :-)
I miei requisiti principali sono:
- È possibile crittografare l'archivio
- Può creare archivi comuni che possono essere aperti da chiunque abbia una copia di WinZip
Qualcuno ha suggerimenti con componenti che hanno usato? Sentiti libero di suggerire librerie / componenti gratuite e commerciali.
Soluzione
Forse DelphiZip è quello che stai cercando, sembra supportare anche la crittografia ed è WinZip compatibile. È rilasciato sotto LGPL.
Altri suggerimenti
KaZip è un archiviatore ZIP open source. Ecco la sua descrizione:
KAZIP è un programma di archiviazione ZIP veloce e semplice e dearchiver che utilizza il ZIP più popolare format.Inflate - Deflate zip formato di compressione (nessuna crittografia supporto e nessun multidisk supporto) .KAZip è totalmente basato su Delphi VCL - nessuna DLL, ActiveX o altro librerie esterne .KAZip è totalmente orientato al flusso in modo da poter gestire dati solo in memoria senza creare file temporanei, ecc. Se necessario aggiungi la funzionalità zip-unzip al tuo applicazione, KAZIP è il giusto soluzione. Ulteriori ZipListView e Componenti ZipTreeView per facile visualisation.Functionality: Zip-Unzip usando decomprimere Inflate-DeflateBZip2 tramite l'utilizzo di unità BZIP2 da Edison Mera Menndez.Funzioni: Aggiunta File, cartelle, stream; Selezione, Deselezionare, selezionare; Estrarre in file e flussi; Elimina e rinomina filesCreate, Delete e Rename folderTest, RepairMolte nuove proprietà e metodi, velocità migliorata. Molto complessa applicazione demo di Browser Browser è incluso
Non è ancora compatibile con Delphi 2009, ma con alcune piccole modifiche al codice sorgente, puoi farlo funzionare anche in Delphi 2009. In realtà, è quello che ho fatto.
Saluti
Sto usando madZip da madCollection
Sono sorpreso che nessuno abbia ancora menzionato JclCompression - fa parte della nota Jedi Code Library (JCL). Ecco una vista dell'unità stessa: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup
Nota, è compatibile con la DLL 4.64 zip versione 4.64 - le versioni più recenti potrebbero non essere compatibili con le versioni precedenti ...
Consiglio $ 69 ZipForge da ComponentAce.
È possibile utilizzare i collegamenti 7zip (LZMA) per Pascal (compatibile con Delphi): http: // www.birtles.org.uk/programming/
Un'altra risorsa di Delphi da guardare sarebbe InnoSetup . Il codice sorgente è disponibile e con un po 'di lavoro potrebbe darti un vantaggio su ciò che stai cercando di fare. Esiste un'opzione per creare archivi zip autoestraenti compatibili con WinZip,
I miei pensieri non sono di usare il programma, ma di usare la sua fonte come punto di partenza poiché è molto testato ed estremamente solido.
Ci sono infozips zip32 e unzip32 dlls. Possono essere usati da Delphi (anche da Visual Basic), ci sono unità / moduli di interfaccia per entrambi. L'interfaccia non è buona come mi sarebbe piaciuta, ma funziona.