Поскольку развертывание большого файла gzip занимает довольно много времени (иногда более полминуты), я хотел бы узнать расширенный размер, прежде чем начинать расширение (для целей отчета о прогрессии). Есть ли способ узнать это без фактического расширения?
Обновление
Для файла размером более 4 ГБ (расширенный размер) нет точного способа узнать размер без фактического расширения файла gzip. Однако для файлов размером менее 4 ГБ (расширенный размер) фактический расширенный размер сохраняется как последние 4 байта файла gzip и может быть легко получен:
(1..4).inject(0) do |v, i|
v += IO.read(file_name, 1, original_size - i)[0] * (2**8) ** (4 - i)
end