254 votes

Ce qui est une bonne bibliothèque de Java à zip/unzip fichiers ?

J'ai regardé le Zip par défaut de la bibliothèque qui est livré avec le JDK et le Apache de compression libs et je ne suis pas d'accord avec eux pour 3 raisons:

  1. Ils sont lourds et ont une mauvaise conception d'API. Je dois écrire 50 lignes de chaudière plaque de tableau d'octets de sortie, zip d'entrée, fichier des cours d'eau et fermer pertinentes ruisseaux et attraper les exceptions et les déplacer octet tampons sur mon propre? Pourquoi ne puis-je pas avoir une API simple qui ressemble à ceci Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null) et Zipper.zip(File targetDirectory, String password = null) qui fonctionne, tout simplement?

  2. Il semble que la compression, la décompression détruit le fichier de méta-données et la manipulation de passe est cassé.

  3. Aussi, toutes les bibliothèques que j'ai essayé ont été 2-3x lent par rapport à la ligne de commande zip outils que j'obtiens avec UNIX?

Pour moi (2) et (3) sont des points mineurs, mais je veux vraiment une bonne testés de la bibliothèque avec une interface de ligne de.

313voto

user2003470 Points 736

Je sais que sa fin et il y a beaucoup de réponses, mais cette zip4j est une des meilleures bibliothèques pour sertisseuse ive utilisé. Son simple (pas de code de chaudière) et peut facilement manipuler les fichiers de mot de passe protégé.

La dépendance Maven est :

88voto

Geoffrey De Smet Points 6032

Avec IOUtils Apache commons-e / s, vous pouvez faire ceci :

C’est toujours un code réutilisable, mais il a seulement 1 dépendance non exotiques : Commons-io

42voto

Joe Michael Points 113

Extraire le fichier zip et tous ses sous-dossiers :

Les fichiers zip et tous ses sous-dossiers :

24voto

toomasr Points 1655

Une autre option que vous pouvez vérifier est zt-zip disponible de Maven central et la page du projet à https://github.com/zeroturnaround/zt-zip

Il a de la norme d’emballage et déballage fonctionnalités (sur les cours d’eau et le système de fichiers) + beaucoup de méthodes d’assistance pour tester des fichiers dans une archive ou d’ajouter/supprimer des entrées.

8voto

Michael Points 724

Un très beau projet est TrueZip.

TrueZIP est un Java basé sur cadre plug-in pour les systèmes de fichier virtuel (VFS) qui fournit un accès transparent pour archiver les fichiers comme s’ils étaient tout simples répertoires

Par exemple (dans le site) :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X