So entpacken Sie eine TAR-Datei mit Apache Commons

Ich verwende die Apache Commons 1.4.1-Bibliothek zum Komprimieren und Dekomprimieren".tar.gz" Dateien.

Ich habe Probleme mit dem letzten Bit - Konvertieren von aTarArchiveInputStream in einFileOutputStream.

Seltsamerweise bricht es in dieser Zeile:

FileOutputStream fout = new FileOutputStream(destPath);

destPath ist eine Datei mit dem kanonischen Pfad C: \ Dokumente und Einstellungen \ Administrator \ Eigene Dateien \ JavaWorkspace \ BackupUtility \ untarred \ Test \ subdir \ testinsub.txt

Fehler erzeugt:

Exception in thread "main" java.io.IOException: The system cannot find the path specified

Irgendeine Idee woran es liegen könnte? Und warum kann es den Weg nicht finden?

Ich füge die ganze Methode unten hinzu (von der das meiste aufgehoben ist)Hier).

private void untar(File dest) throws IOException {
    dest.mkdir();
    TarArchiveEntry tarEntry = tarIn.getNextTarEntry();
    // tarIn is a TarArchiveInputStream
    while (tarEntry != null) {// create a file with the same name as the tarEntry
        File destPath = new File(dest.toString() + System.getProperty("file.separator") + tarEntry.getName());
        System.out.println("working: " + destPath.getCanonicalPath());
        if (tarEntry.isDirectory()) {
            destPath.mkdirs();
        } else {
            destPath.createNewFile();
            FileOutputStream fout = new FileOutputStream(destPath);
            tarIn.read(new byte[(int) tarEntry.getSize()]);
            fout.close();
        }
        tarEntry = tarIn.getNextTarEntry();
    }
    tarIn.close();
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage