S@n 99.8fm, ближайшее время - это пока я разбираюсь с глюками. Потому что если я сделаю поддержку RAR, но программа будет работать через известное место - это совсем не то, что мне нужно. Ну а дальше посмотрим.
С RAR проблема в том, что спецификаций формата нет, есть только библиотека на C++, которую нужно переносить на Java. С одной стороны, придется разбираться, как она работает, и по программному коду составлять представление о том, как формат RAR вообще устроен, с другой - придется всю эту ерунду портировать на Java с учетом ограниченного объема heap. А браться за это дело хочется не каждому. Пока что только автор MobileRAR сделал попытку, да и то довел дело только до середины.
roman1OO,
seclub.org/forum/goto/7568156/
Ссылка на пост
ts 2 мая 2009 в 20:03
ZIP-архив состоит из двух основных частей: собственно файлов с заголовками и записи о содержимом архива в конце, которая называется central directory, сокращенно - CD. Чтобы узнать, что в архиве, нужно добраться до CD, и это можно делать с конца или с начала.
Если с начала, то нужно читать заголовки и пропускать указанные там размеры файлов. Правда, иногда размеры пишут после самих файлов в так называемых дескрипторах, и тогда приходится распаковывать файлы в никуда, чтобы выяснить, сколько байт из архива нужно пропустить.
Если с конца, то читается параметр в самом конце архива, после CD, в котором сказано, с какого байта CD начинается, и потом пропустить уже известное количество байт до CD. Второй метод открытия был введен с 2.5.0 и используется, если размеры файлов в заголовках не написаны или возникает какая-то ошибка в кривом архиве.