Je veux répertorier toutes les entrées d'un fichier tar dans mon programme Java. Comment est-ce possible ?
Pour les fichiers ZIP, je peux utiliser le code ci-dessous: mais je ne suis pas sûr pour les fichiers tar. Quelqu'un peut-il aider? J'utilise org.apache.tools.tar. * Code> p> p>
4 Réponses :
Pour lire un fichier Java .jar, vous pouvez utiliser l'outil "JAR" ... ou unzip. Les fichiers .jar sont au format .zip. P>
Pour lire un fichier * Nix .tar, vous devez utiliser l'outil "goudron". P>
Si vous êtes sous Windows, je vous encourage à essayer 7-zip. C'est un outil pratique qui reconnaît un zillion de formats ... y compris à la fois .zip (donc aussi .jar) et goudron: p>
Si vous devez le faire par programme, je suppose que l'APACHE API API "TAR" est un bon moyen d'y aller. Il vous donne une liste de "tarente": p>
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/atache/tools/tar/tarentry.html P>
Vous utilisiez le code de fichier zip pour répertorier les répertoires .... p>
fichier tar pour Linux, vous pouvez vérifier p>
http://www.java2s.com/code/ Java / Input-Input-Sortie / TaparchivelIlisterTarfile.htm P>
Pour plus de références .... p>
Cette API est très similaire à l'utilisation de Java ZipInputtream .
Pour commencer: P>
TarInputStream tis = new TarInputStream(new FileInputStream("myfile.tar")); try { TarEntry entry; do { entry = tis.getNextEntry(); //Do something with the entry } while (entry != null); } finally { tis.close(); } More examples with different APIs are [here][2].
Malheureusement, vous avez oublié d'ajouter un lien (
Apache Commons Compressez (http://commons.apache.org/compress/) est facile à utiliser.
Voici un exemple de lecture d'entrées d'un tarou: p>
Je peux répertorier toutes les entrées de ZIP et de TAR.GZ à l'aide de TaristriènerInputStream et ZipInputStream à l'aide de la fonction séparée, mais y a-t-il un moyen de gérer les deux dans une seule fonction? Quelque chose comme 'cas zip () => nouveau goudron de caisse zipinputtream (src.open) => nouvelle TararchiveInputStream (nouveau gzipcompressorInputStream (fichier.