Виртуальная файловая система с C/C++ под Windows
В настоящее время я занимаюсь разработкой игры, которая имитирует операционную систему. Поэтому мне нужна игровая файловая система. В настоящее время я использую zziplib, чтобы иметь возможность загружать файлы из zip-архива, однако это "файловая система", доступная только для чтения, и мне нужен способ для записи новых файлов и их последующего сериализации (и десериализации их во время следующего выполнения)! Есть ли какие-нибудь полезные библиотеки в дикой природе, которые можно использовать, или я должен написать одну для себя, основываясь на каких-нибудь?
3 ответа
Это, вероятно, одно из мест, где использование простой базы данных в качестве файловой системы имеет смысл.
Используйте что-то вроде sqlite
хранить данные (с путями в качестве ключей, каплями в виде данных или чем-то в этом роде).
Одним из преимуществ этого является то, что вам на самом деле не нужно беспокоиться о хранилище, и вы можете использовать существующие инструменты базы данных для просмотра / редактирования данных в автономном режиме, вместо того, чтобы писать свои собственные. (Кроме того, вы можете хранить там другую информацию об игре.)
Вы можете проверить PicoStorage и встроенную файловую систему на C++. Я не использовал напрямую, но я смотрел на них обоих. У встроенной файловой системы есть зависимость, которая может быть ограничителем показа - она требует, чтобы Qt был связан. Возможно, это можно было бы удалить, но она использует его главным образом для QString и QFile (и не будет иметь никаких причин требовать UI).
Мои шесть пенсов поверх ответов выше. SolFS и CodebaseFS предоставляют возможности виртуальной файловой системы; оба имеют API для C/C++ и, похоже, выполняют именно то, о чем вы спрашиваете. Все же... масштаб твоей задачи мне не понятен. Ваша игра должна управлять десятками, сотнями, зундсами... файлами? Каковы размеры этих файлов? И т. Д., И т. Д. Я бы поднял эти вопросы, прежде чем искать подходящее решение.