2013-10-14 4 views
3

Я пишу приложение для Android, которое необходимо извлечь 7z-архивы. На время я искал сторонние библиотеки или исходный код, который можно использовать в моем проекте.p7zip на Android-Извлечение архива 7z на Android

Сначала я нашел J7zip от http://sourceforge.net/projects/p7zip/files/J7Zip/ После изменения двух классов образцов он работает в моем проекте, это интересно! но проблема заключалась в следующем: 1. Это приведет к ошибкам памяти при извлечении больших архивов 2. Оно поддерживает только архивы с помощью кодека или кодека LZMA. Мне так грустно об этом ...

Тогда я нахожу это: «J7zip on Android - Extracting From an Archive and Listing Contents» в StackOverflow. Мое требование серьезно похоже на этот вопрос. Как уже упоминалось, andro7z, он содержит код C/C++: http://sourceforge.net/projects/p7zip/files/p7zip/; Я считаю, что это хорошее решение для меня.

andro7z не содержит «Как использовать» doc, и я новичок в JNI, я понятия не имею, как изменить andro7z в соответствии с моим проектом. Итак, кто-то реализовал извлечение 7z-архива с помощью andro7z? Могли бы вы поделиться мне демо-кодом или шагами по его реализации? благодаря!

+0

Кто-нибудь может показать мне метод C++, который реализовал извлечение 7z-архива с использованием исходного кода 7z? –

ответ

2

Я сам завершил этот проект, классы под папкой «jni/7z» и «src» нужно реализовать самостоятельно, если вам нужно поддерживать зашифрованный архив, вы должны вызвать методы в 7z.dll или изменить источник код в папке C/CPP, C/CPP - исходный код 7z.

+0

Приятно видеть, что вам это удалось. Не могли бы вы предоставить код и дополнительную информацию? –

+0

jni C++ code: const char * args [5] = {"7za", "x", tarPath, extFile, 0}; jint result = andro7za_main (ARGC, args); java call code: public static native int extract (String targetPath, String extractFilePath); int result = extract ("- o" + targetPath, extractFilePath); –

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