web-dev-qa-db-fra.com

bibliothèque Zip portable pour C / C ++ (pas une application)

Je veux pouvoir compresser des fichiers à partir de mon application non-gui C/C++, sur plusieurs versions de Windows, Linux/Unix et MacOS.

L'utilisateur va compiler et exécuter en utilisant cette application en utilisant Eclipse + makefile ou VisualStudio. Je ne veux pas que l'utilisateur doive installer quelque chose séparément ou avoir mes exécutables d'installation de makefile.

Préférez l'open-source. Je regarde déjà "Zip 3.0" ...

29
ckray

Jetez un oeil à Libarchive . J'ai passé beaucoup de temps à chercher une bibliothèque multi-plateforme et sous licence LGPL avec une interface pratique. C'est le meilleur de tous que j'ai vu. Outil très simple et puissant. Conçu à l'origine pour les systèmes de type Unix mais il y a aussi la version Windows .

11
Dmitry

Je recommanderais ZipLib https://bitbucket.org/wbenny/ziplib/wiki/Home

Raisons personnelles pour lesquelles j'aime ce projet:

  • construit autour des flux stl c ++ 11 (ex. décompresse en flux stl!)
  • léger (pas de dépendances autres que zlib)
  • peut être utilisé à la fois sur windows et liunx

Il m'a fallu beaucoup de temps pour trouver ce projet - j'espère que cela aide quelqu'un.

7
dk123

J'ai eu d'excellents résultats avec miniz: https://code.google.com/p/miniz/

Pour une simple compression de chaînes en c ++, j'aime aussi beaucoup la solution de Timo Bingmann .

7
Homer6

Nous avons utilisé zlib plusieurs fois ici. C'est une bibliothèque assez standard qui a des implémentations dans la plupart des langues principales.

6
Herms
4
BastiBen

ZLIB - la bibliothèque la plus portable au monde. open source, très éprouvé et fiable. L'étalon-or. pourquoi utiliser autre chose?

1
Cheeso

D'autres ont mentionné zlib, qui est agréable et assez facile.

Le SDK 7-Zip (LZMA) est plus complexe mais a également de très bons taux de compression.

Edit: Bien que toujours en développement, avec le processus de publication et l'historique au fil du temps, j'hésiterais à le recommander maintenant.

1
Kris Kumler
1
plan9assembler