LZMA SDK iOS для отображения прогресса


person Vignesh PT    schedule 16.07.2014    source источник


Ответы (2)


Итак, недавно я немного рассмотрел эту проблему, и, честно говоря, лучшее, что вы сможете сделать, это найти все файлы в определенном каталоге tmp, где происходит распаковка, а затем подсчитать их и сравнить с известным размером. N. Проблема с попыткой сделать это в библиотеке заключается в том, что она охватывает несколько сред выполнения, а идея обратного вызова делает код беспорядочным. Кроме того, обратный вызов не очень поможет из-за того, как работает сжатие 7z. Для декодирования необходимо создать словарь декомпрессии до того, как можно будет распаковать определенные файлы, и этот процесс создания словаря занимает много времени, прежде чем можно будет даже записать первый файл. Итак, если вы поместите в свое приложение счетчик «процент выполненного», показывающий, сколько было сделано, он будет показывать 0% выполненного в течение длительного времени, затем перейти к 50%, а затем к 90 или 100%. В принципе, это не было бы так полезно, даже если бы оно было реализовано.

person MoDJ    schedule 25.08.2014

Вы можете попробовать порт C++ последней версии LZMA SDK (15.06) без описанных выше ограничений (версия C). Выделение памяти и чтение/запись операций ввода-вывода можно настроить во время выполнения, а также работать с зашифрованными паролем архивами, сглаженным прогрессом, типами архивов Lzma и Lzma2 и т. д.

GitHub: https://github.com/OlehKulykov/LzmaSDKObjC

person Oleh Kulykov    schedule 07.09.2015