Архив из нескольких книг .txt, созданный в PowerGrasp, весил на несколько КБ меньше такого же архива, созданного в WinRar, что не может не радовать.
Степень сжатия на макс. и там, и там.
Значит мне не нужно ничего дорабатывать в механизме запаковки.
ts 2 мая 2009 в 20:03
ZIP-архив состоит из двух основных частей: собственно файлов с заголовками и записи о содержимом архива в конце, которая называется central directory, сокращенно - CD. Чтобы узнать, что в архиве, нужно добраться до CD, и это можно делать с конца или с начала.
Если с начала, то нужно читать заголовки и пропускать указанные там размеры файлов. Правда, иногда размеры пишут после самих файлов в так называемых дескрипторах, и тогда приходится распаковывать файлы в никуда, чтобы выяснить, сколько байт из архива нужно пропустить.
Если с конца, то читается параметр в самом конце архива, после CD, в котором сказано, с какого байта CD начинается, и потом пропустить уже известное количество байт до CD. Второй метод открытия был введен с 2.5.0 и используется, если размеры файлов в заголовках не написаны или возникает какая-то ошибка в кривом архиве.