Есть ли альтернатива составным файлам Windows с открытым исходным кодом?
Я пытаюсь сохранить пару файлов в файл контейнера. Файлы могут быть изменены позже, что означает, что контейнер может быть увеличен. Пользователь должен видеть этот контейнер только как один файл в файловой системе. Приложение написано на C++ и работает на Windows, но файлы должны быть переносимы и на другие платформы.
Требования к формату контейнера:
1. Размер: разрешить файлы размером более 4 ГБ.
2. Переносимость. Должно быть возможным открыть файлы контейнеров на других платформах.
3. Производительность: при изменении файла внутри контейнера могут быть изменены только те "куски", которые представляют этот конкретный файл. Тем более, что может не быть полной перезаписи этого файла.
4. Структура: должна обеспечивать структуру каталогов, которая позволяет строить иерархию файлов и каталогов.
При исключении требований 1.) и 2.) составные файлы (например, используемые в Word и Excel) хорошо подходят.
Конечно, можно разработать API, который отвечает всем требованиям, но мне интересно, есть ли уже какое-нибудь решение с открытым исходным кодом, которое решает эту проблему?
Какие-либо предложения?
4 ответа
Является ли формат файла HDF5 тем, что вы ищете, если вы создаете приложение на C++?
Поиск в Google по запросу "переносное структурированное хранилище" дал: pole
Чтобы расширить ответ Дж. Ф. Себастьяна, tar
может быть лучше формат, потому что он не сжимает. Это буквально просто контейнер.
Я не уверен, как любой из этих форматов архивов в то время как редактируемые. Поиграйте с SharpZipLib и выясните, я думаю =)
Некоторые архивные форматы (zip, bzip2) могут выполнять эту работу.