2013-04-04 3 views
0

Я ищу библиотеку для извлечения архивных файлов. Например, zips, rars, tars, wars, ...Извлечение архивных файлов в Java

Мое приложение до сих пор поддерживает только .ZIP & .RAR, но я хочу увеличить поддержку нескольких других типов архивов. Не только это, но я хочу, чтобы библиотека «обнаруживала» архивные файлы, даже если я даю им другое расширение или вообще не добавляю расширение.

В принципе, я ищу какой-то интерфейс, с которым я могу передать файл и путь, который затем проверяет, является ли файл архивом, возвращает ошибку, если это не так, и извлекает файлы к указанному если это так. Я предполагаю, что существуют разные реализации для разных типов файлов, но было бы очень полезно, если библиотека обнаруживает это и автоматически передает его правильной реализации.

ответ

1

Вы можете использовать Apache Commons Compress.

Эта библиотека также используется большим Apache Tika, который может быть использован для обнаружения разных форматов файлов без расширения (но, возможно, огромная Apache Tika - это излишняя задача для вашей задачи).

+0

Внутри этих архивов находится сложная структура каталогов. Как я могу написать ArchiveInputStream, содержащий эту структуру и свои файлы, на диск? –

+0

Кроме того, нет поддержки для rar's? –

+0

Для RAR вы можете использовать [Raroscope] (http://code.google.com/p/raroscope/) или google для другой библиотеки Java. Я упомянул Apache Commons Compress, поскольку это самая полная библиотека сжатия Java, насколько я знаю. – Sonson123

Смежные вопросы