Как указать содержимое сжатого файла tar в Java без извлечения файлов? Я посмотрел на apache ant api, и я вижу, как извлекать файлы, но я не могу понять, как их просто перечислить. Файлы tar - либо bz2, либо gz.Как перечислить содержимое сжатого файла tar в Java
ответ
Я рекомендую использовать TrueZIP. Это действительно хорошо.
TrueZIP - это платформа для виртуальных файловых систем и библиотека для доступа к архивным файлам, как если бы они были просто старыми каталогами.
В качестве основы TrueZIP предоставляет интерфейсы и классы для записи драйверов файловой системы, которые подключаются к объему объединенной файловой системы.
В качестве библиотеки TrueZIP обеспечивает удобный многопоточный доступ для чтения/записи к архивным файлам, как если бы они были просто старыми каталогами в пути к файловой системе.
Это отличная, быстрая библиотека. Он имеет TAR drivers и can handle *.tar.gz
and *.tar.bz2
files. JavaDocs понятны и полны, хотя я обнаружил, что автономные учебные пособия недостаточны - мне пришлось читать JavaDoc, чтобы заставить все работать.
... Который подводит меня к единственному недостатку, который я нашел: может потребоваться немного времени, чтобы обернуть голову вокруг TrueZIP. Первоначально у меня возникали проблемы с работой, но через некоторое время «щелкнули», и у меня не было никаких трудностей.
TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(tempFile));
ArchiveEntry entry = tin.getNextEntry();
while (entry != null) {
System.out.println("File Name " + entry.getName());//List file name
}
Спасибо, я пробовал, и он работает по большей части, но есть определенные файлы tar, которые, похоже, бросают исключения или дают неверные результаты. А именно tar-файлы, которые содержат каталог в качестве первой записи, но без обратной косой черты. – Wayne
Ссылки мертвы. –
@ImpulseTheFox спасибо за головы. Я исправил ссылки, но вы всегда можете предложить отредактировать себя :) –