6
votes

Comment répertorier toutes les entrées d'un fichier tar en Java?

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: xxx

mais je ne suis pas sûr pour les fichiers tar. Quelqu'un peut-il aider? J'utilise org.apache.tools.tar. *


0 commentaires

4 Réponses :


-3
votes

Pour lire un fichier Java .jar, vous pouvez utiliser l'outil "JAR" ... ou unzip. Les fichiers .jar sont au format .zip.

Pour lire un fichier * Nix .tar, vous devez utiliser l'outil "goudron".

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:

http://www.7-zip.org/

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":

http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/atache/tools/tar/tarentry.html


0 commentaires

0
votes

Vous utilisiez le code de fichier zip pour répertorier les répertoires ....

fichier tar pour Linux, vous pouvez vérifier

http://www.java2s.com/code/ Java / Input-Input-Sortie / TaparchivelIlisterTarfile.htm

Pour plus de références ....


0 commentaires

2
votes

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].


1 commentaires

Malheureusement, vous avez oublié d'ajouter un lien (



14
votes

Apache Commons Compressez (http://commons.apache.org/compress/) est facile à utiliser.

Voici un exemple de lecture d'entrées d'un tarou: xxx


1 commentaires

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.