Gestion des .zip, .tar, .gz (ou autre archive) [Résolu]

mikis69 151 Messages postés mardi 26 novembre 2013Date d'inscription 13 décembre 2017 Dernière intervention - 23 juin 2017 à 20:27 - Dernière réponse : KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention
- 23 juin 2017 à 21:09
Bonjour tout le monde,

J'ai quelques petites questions concernant les fichiers "archives" en java.

Pour vous mettre en situation, je dois télécharger un tas de projets sur internet (par exemple des projets github, des modules sur CPAN) donc on ne sait pas sur quoi on va tomber (zip, tar ou autre).

1. Je voulais savoir s'il existe un moyen de tester si l'objet File est une archive ?
Car si on fait isDirectory(), il repond que non et si on fait isFile(), il répond que oui.

2. Je voulais savoir également s'il existe un moyen de gérer toutes les extensions en une seule méthode ? Ou s'il faut faire au cas par cas ? Car je sais qu'il existe l'objet ZIP en java mais il ne prend pas en charge les fichiers tar par exemple..

Merci pour vos réponses,

Bonne soirée à tous,

Mikis
Afficher la suite 

3 réponses

Répondre au sujet
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 23 juin 2017 à 20:43
0
Utile
2
Bonjour,

Java gère nativement les zip notamment parce que c'est l'algorithme de compression utilisé pour les jar, mais Java n'a pas trop d'intérêt à proposer davantage d'algorithmes, car il en faudrait autant qu'il y a de formats de compression à gérer, et il y en a beaucoup, certains ayant un format propriétaire incompatibles avec la licence d'utilisation de Java.

En revanche il existe des bibliothèques qui viennent compléter ce manque, par exemple Apache Commons Compress.
mikis69 151 Messages postés mardi 26 novembre 2013Date d'inscription 13 décembre 2017 Dernière intervention - 23 juin 2017 à 20:48
Merci pour ta réponse si rapide,

Donc clairement pour savoir quoi utiliser pour décompresser l'archive, je vais devoir tester l'extension ?
Il n'existe pas de moyen plus rapide (en terme de performance) ?

Encore merci :)
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention > mikis69 151 Messages postés mardi 26 novembre 2013Date d'inscription 13 décembre 2017 Dernière intervention - 23 juin 2017 à 21:09
Quand on parle de décompresser un fichier, ce n'est pas tester l'extension qui va plomber les performances... à voir d'ailleurs si Commons Compress ne possède pas déjà une méthode utilitaire pour faire cette détection.

Et pour rappel, l'extension d'un fichier est juste une indication de type pour certains systèmes d'exploitation, afin de savoir avec quel programme ouvrir le fichier, mais ce qui compte c'est le programme qui ouvre le fichier, pas l'extension du fichier en lui même.
Commenter la réponse de KX