Добрый день, разрабатываю программу в которой требуется хранить некий набор файлов, по отдельности их будет слишком много и это будет неудобно, хочется все в 1 файле хранить. На вскидку есть варианты с виртуальной файловой системой, но не нашел ни одной бесплатной более менее рабочей реализации, писать с нуля такие вещи не очень надежно выйдет. Может есть идеи как лучше сделать чтобы хранить и работать с кучей файлов, но при этом чтобы на диске хранился только 1?
P.S. архивы типа rar или zip не подходят, т.к. для изменения 1 файла нужно сохранять заново весь архив, что крайне не желательно (файлы в сумме могут весить скажем 1-2Гб). Да и сжатие как таковое значение не имеет потому как можно сжать данные еще на этапе сохранения.
P.S.S. Желательно чтобы был механизм при котором можно обращаться к файлам в "контейнере" на уровне потоков.
Спасибо всем за советы, реализовал на базе SQLite, практически полноценная файловая система получилась. Если есть интерес к вопросу могу позже опубликовать исходные коды.
Две базы. Один файл для индексов и поиска, второй для хранения тел файлов. С многопоточностью правда могут быть проблемы, но все остальное очень удобно.
Табличка с именами файлов и соответствующими им индексами (числовыми значениями), по которым будет искаться тело файла из второй таблицы. Индексы = ключевые поля
@vipuhoff Скорость поиска в базе SQLite зависит не только от таблицы, но и от размера файла базы. Поэтому файл с индексами и разными мета-данными держим маленьким и все ищем в нем. А все тела файлов держим в огромном файле, куда ни в коем случае не лезем с поиском, а дергаем файлы уже по заготовленным индексам.