Я взял на себя ответственность за часть Программного обеспечения, которая предварительно обрабатывает данные в глубокую структуру каталогов, состоящую из миллионов маленьких (48 КБ) файлов с геохэш-подобной структурой.
Перемещение и копирование этих файлов - настоящая боль.
Сначала я хочу сделать резервную копию данных в некоторый архив, чтобы уменьшить нагрузку на файловую систему. В качестве следующего шага я хочу улучшить инструмент для работы с архивами вместо файлов.
Первая проблема возникает уже после упаковки этих файлов в архив.
Windows zip tool и 7zip прерывают процесс.
Также инструмент zip, поставляемый с gnuWin32 Zip 3.0 (July 5th 2008), by Info-Zip
отменяет операцию с zip error: Out of memory (local_to_display_string)
Поэтому я ищу совет для двух вопросов:
Каков подходящий формат файла архива (и инструмент, который может обработать этот вариант использования), который позволяет произвольный доступ к файлам. Данные в файлах не должны быть произвольно доступны. так как файлы достаточно малы для загрузки в память.
Существует ли библиотека C/C++, которая обеспечивает доступ к архиву как можно ближе к обычной обработке файлов, чтобы изменения в исходном коде были как можно меньше? Само программное обеспечение использует Qt/Boost.