В настоящее время я пытаюсь создать функцию для поиска файлов вложенных почтовых ящиков. Общая проблема, с которой я могу справиться, и мой код работает правильно. Проблема, с которой я сталкиваюсь, связана с форматами сжатия.(JAVA), обрабатывающий различные типы сжатия в zipstreams
По умолчанию zip-файлы не являются проблемой, я открываю свой zipinputstream, отправляю его в свою функцию поиска, проверяю каждую запись, если это zip-файл, и если это так, я переношу входной поток в другой zipinputstream и recurse. Проблема возникает, когда у меня есть стандартное сжатие ZIP.
Я хотел бы сделать эту функцию более надежной: чтобы определить формат сжатия записи zip, оберните ее в правильный дефлатер, а затем оберните это в поток zipinput, чтобы я мог рекурсировать. Проблема в том, что я не знаю, как декодировать параметры сжатия. Я также не знаю, как обращаться с другими форматами сжатия ZIP.
Любые советы о том, как сделать эту функцию более гибкой, были бы полезными. Я намерен интегрировать это в свои личные библиотеки, поэтому буду использовать эту функцию со всех направлений в будущем.
нет, не такой чистый, как мне понравилось. Я надеялся, что zip-библиотека была немного более полной, чем эта, и я просто неправильно интерпретировал ссылку api. Я бы надеялся, что если нет прямой поддержки, есть библиотеки, которые более полны. Предполагаю, что мне придется попробовать найти несколько библиотек? –
Да. Я сделал некоторые поиски и не нашел ничего всеобъемлющего. Но есть проект Apache commons, связанный с этим - вы не первый, разочарованный этим ограничением. – Thorn
Да, это похоже на таинственный пробел в способности Java. так же, как отсутствие достойного поиска файлов. Я только что создал концепцию «FileRef», класс, который расширяет файл для представления файлов внутри zips или вложенных почтовых индексов. Он позволяет ссылаться на сжатые файлы и выводить входной поток для этой записи. С этим я также сделал независимую от платформы версию «dir» с подстановочными знаками и поиском подпапок и с поиском в zip-файлах. Подстановочные знаки и подпапки - это то, о чем я думаю, что Java не хватает. Хотя ограничение на регулярные молнии только ослабляет мою библиотеку. –