6 Stimmen

Wie kann man alle Einträge einer tar-Datei in Java auflisten?

Ich möchte alle Einträge einer tar-Datei in meinem Java-Programm auflisten. Wie ist das möglich? Für Zip-Dateien kann ich den folgenden Code verwenden:

ZipFile zf = new ZipFile("ReadZip.zip");
Enumeration entries = zf.entries();
while (entries.hasMoreElements()) {.....}

Bei den tar-Dateien bin ich mir jedoch nicht sicher. Kann mir jemand helfen? Ich benutze org.apache.tools.tar.*

14voto

craigmj Punkte 4589

Apache Commons Compress (http://commons.apache.org/compress/) ist einfach zu bedienen.

Hier ist ein Beispiel für das Lesen der Einträge eines tar:

import java.io.FileInputStream;

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;

public class Taread {
    public static void main(String[] args) {
        try {
            TarArchiveInputStream tarInput = new TarArchiveInputStream(new FileInputStream(args[0]));
            TarArchiveEntry entry;
            while (null!=(entry=tarInput.getNextTarEntry())) {
                System.out.println(entry.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2voto

prunge Punkte 21529

Diese API ist der Verwendung der Java-eigenen ZipInputStream .

Um zu beginnen:

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

0voto

Chirag Mehta Punkte 11

Sie haben den ZIP-Dateicode für die Auflistung der Verzeichnisse verwendet: ....

tar-Datei für Linux können Sie sich ansehen

http://www.java2s.com/Code/Java/File-Input-Output/TapeArchiveListerTarfile.htm

für weitere Referenzen....

-3voto

paulsm4 Punkte 106654

Um eine Java .jar-Datei zu lesen, können Sie das "jar"-Tool ... oder Unzip verwenden. .jar-Dateien sind im .zip-Format.

Um eine *nix-.tar-Datei zu lesen, müssen Sie jedoch das Werkzeug "tar" verwenden.

Wenn Sie mit Windows arbeiten, empfehle ich Ihnen, 7-Zip auszuprobieren. Es ist ein praktisches Tool, das eine Zillion Formate erkennt ... darunter sowohl .zip (also auch .jar) als auch tar:

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

Wenn Sie es programmatisch machen müssen, ist die Apache Ant API "tar" ein guter Weg. Es gibt Ihnen eine Liste von "TarEntry":

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X