Comment compresser plusieurs fichiers dans une archive unique avec Delphi
-
03-07-2019 - |
Question
Je dois compresser plusieurs fichiers dans une seule archive à l'aide de Delphi. Je préférerais utiliser des composants gratuits ou des composants open-source car je suis très très bon marché: -)
Mes principales exigences sont les suivantes:
- Possible de chiffrer l'archive
- Peut créer des archives communes qui peuvent être ouvertes par n’importe qui avec une copie de WinZip
Quelqu'un a-t-il des suggestions à utiliser avec les composants? N'hésitez pas à suggérer des composants / bibliothèques gratuits ainsi que commerciaux.
La solution
Peut-être DelphiZip est-il ce que vous recherchez, il semble prendre en charge le cryptage également, et c'est WinZip compatible. Il est publié sous LGPL.
Autres conseils
KaZip est un archiveur ZIP à code source ouvert. Voici sa description:
KAZIP est rapide, archiveur ZIP simple et dearchiver qui utilise le plus populaire ZIP format.Inflate - Dégonfler le zip format de compression (pas de cryptage support et pas de multidisque support) .KAZip est totalement basé sur VCL Delphi - pas de DLL, ActiveX ou autre bibliothèques externes .KAZip est totalement orienté flux afin que vous puissiez faire face à données uniquement en mémoire sans créer fichiers temporaires, etc. Si vous avez besoin de ajouter la fonctionnalité zip-unzip à votre application, KAZIP est le droit Solution. ZipListView supplémentaire et Composants ZipTreeView pour facile visualisation.Fonctionnalité: Zip-Unzip en utilisant la décompression Inflate-DeflateBZip2 utilisation en creux des unités BZIP2 de Edison Mera Menndez.Functions: Ajouter Fichiers, dossiers, flux; En sélectionnant, Désélectionner, vérifier; extraire vers fichiers et flux, supprimer et renommer filesCreate, Delete et Rename folderTest, RepairMany nouvelles propriétés et méthodes, vitesse améliorée. Un très application de démonstration complexe du navigateur Zip est inclus
Il n'est pas encore compatible avec Delphi 2009, mais avec quelques modifications mineures dans le code source, vous pouvez également le faire fonctionner dans Delphi 2009. En fait, c'est ce que j'ai fait.
Cordialement
J'utilise madZip de madCollection
Je suis surpris que personne n'ait encore mentionné JclCompression - cela fait partie de la célèbre Jedi Code Library (JCL). Voici une vue de l'unité elle-même: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup
Remarque, il est compatible avec la version 4.64 de la DLL 7-zip. Les versions les plus récentes risquent de ne pas être compatibles avec les versions antérieures ...
Je recommande le ZipForge de ComponentAce à 69 $
.Vous pouvez utiliser des liaisons 7zip (LZMA) pour Pascal (compatible avec Delphi): http: // www.birtles.org.uk/programming/
Une autre ressource Delphi à examiner serait InnoSetup . Le code source est disponible et avec un peu de travail pourrait vous donner une longueur d'avance sur ce que vous essayez de faire. Il existe une option pour créer des archives zip auto-extractibles compatibles avec WinZip,
Je ne pense pas à utiliser le programme, mais à utiliser sa source comme point de départ car il est très éprouvé et extrêmement solide.
Il existe des dz infozips , zip32 et unzip32. Ils peuvent être utilisés à partir de Delphi (même à partir de Visual Basic). Il existe des unités / modules d'interface pour les deux. L’interface n’est pas aussi bonne que je l’aurais voulu, mais ça marche.