Справочная информация: я обрабатываю некоторые файлы журналов, которые заархивированы (я вставляю данные журнала в базу данных).Файлы журналов имеют размер в несколько гигабайт, и было бы неплохо иметь возможность обрабатывать файлы без их извлечения на диск (размер zip-файлов составляет всего несколько сотен мегабайт).У меня это работает для извлеченного файла журнала (используя TStreamReader
).
Что я хочу сделать, это получить какой-то поток декомпрессии для одного из файлов в zip-файле и использовать этот поток дляобработать файл журнала без необходимости извлекать весь файл на диск.Поток декомпрессии должен поддерживать файлы размером более 4 ГБ.
TZipFile
в system.zip
похоже, что он поддерживает это, но я не смог заставить его работать - возможно, потому что он поддерживает только32-битные размеры файлов, и я имею дело с файлами больше этого.У меня также установлена abbrevia, но я не вижу ничего, что позволило бы мне сделать это.
Я использую Delphi XE7 для этого проекта.Обратите внимание, что я не хочу извлекать zip-файл в поток (файлы имеют размер в ГБ и физической памяти недостаточно), но получаю реальный поток распаковки.