11
votes

Java Bibliothèque pour travailler avec des fichiers ZIP

J'ai besoin de créer un fichier zip de mon programme Java.

J'ai besoin d'une bibliothèque capable de créer des fichiers Zip et de stocker des entrées à partir de texte et de fichier, et la chose la plus importante est dont j'ai besoin de stocker un répertoire complet de celui-ci (un répertoire avec plusieurs niveaux d'autres répertoires qui chacun a des fichiers en eux).

Pouvez-vous me suggérer un?


0 commentaires

6 Réponses :


9
votes

Une bibliothèque pour faire la partie difficile de la manipulation des fichiers zip (c'est-à-dire la compression) est construite dans Java SE ( Java.Util.zip ):

http: // downloader.oracle.com/javase/1.5.0/docs/apli/java/util/zip/package-summary.html

Pour vos fonctions de niveau supérieur, il ne serait pas que difficile à écrire certaines fonctions pour traverser récursivement un répertoire et copier les fichiers dans un zipOutputtream - probablement moins de 50 lignes de code ou ainsi.

Il y a un bon exemple à http://www.javareference.com/jrexamples /Viewexample.jsp?id=108 - Il faut un peu de travail pour faire des fichiers unique.


4 commentaires

Mais java.util.zip ne peut pas enregistrer un répertoire entier et je dois l'écrire par moi-même!


True, vous devrez traverser la structure de répertoire et jeter des trucs dans zipOutputStream s vous-même.


BTW, cet exemple est bouché. Il a quelques problèmes de compilation majeurs (tels que non itération correctement sur les fichiers de l'annuaire).


Cette réponse a une très belle mise en œuvre: Stackoverflow.com/a/1399432/134898




22
votes

Consultez zip4j - http://www.lingala.net/zip4j/

J'ai rencontré ce problème aujourd'hui et je refuse de faire une telle merde de niveau inférieure que le JDK veut que nous fassions. Espérons que cette petite bibliothèque fonctionnera


1 commentaires

3
votes

Il y a une liaison Java de la célèbre bibliothèque 7zip , vous pouvez vérifier à http://sevenzipjbind.sourceforge.net/


1 commentaires

De l'expérience personnelle, la liaison Java de la bibliothèque 7ZIP est capable de traiter avec ZIP, GZIP, RAR et d'autres formats, à la fois pour la lecture et l'écriture.



1
votes

EASYZIP4J

Téléchargez-le de GitHub.

https: // github. com / willwarren / easyzip4j / téléchargements

Utilisation xxx

ou xxx

(également couvert dans le Readme https: // github. com / willwarren / easyzip4j / blob / maître / readme.md )

Ceci est un projet basé sur Maven.
Dépend des communes-io et log4j. N'hésitez pas à éditer!


0 commentaires

4
votes

Une autre option que vous pouvez vérifier est zt-zip disponible à partir de la page Maven Central and Project à https://github.com/zeroturnaround/zt-zip

Il possède la fonctionnalité d'emballage et de déballage standard (sur les flux et du système de fichiers) + de nombreuses méthodes d'assistance pour tester les fichiers dans une archive ou ajouter / supprimer des entrées.


2 commentaires

Trop de dépendances ... mais bon code.


Actuellement, la seule dépendance est ORG.SLF4J.SLF4J-API