У меня довольно большой ZIP-файл, который загружается (не может изменить файл). Задача состоит в том, чтобы разархивировать файл во время загрузки, а не ждать, пока конец центрального каталога получено.
Существует ли такая библиотека?
Я написал «щепотку» некоторое время назад. Это в Objective-C, но метод для декодирования файлов из zip может быть способом получить его в C ++? Да, некоторое кодирование будет необходимо.
http://forrst.com/posts/Now_in_ObjC_Pinch_Retrieve_a_file_from_inside-I54
https://github.com/epatel/pinch-objc
Я не уверен, что такая библиотека существует. Если вы не находитесь на очень быстрой линии [или у вас очень медленный процессор], вряд ли вы сэкономите огромное количество времени. Распаковка нескольких гигабайт занимает всего несколько секунд, если все данные находятся в оперативной памяти (может потребоваться некоторое время для записи несжатых данных на диск, а загрузка их с диска может увеличить общее время).
Однако, предполагая, что отправляющий конец поддерживает загрузку «диапазона», вы могли бы написать что-то, что сначала загрузит каталог [сначала прочитав фиксированный заголовок, затем прочитав каталог и затем загрузив оставшуюся часть файла от начала до конца]. Предположительно, именно так работает «щепотка» в ответе эпателя.