我目前正在开发一款模拟操作系统的游戏。因此我需要一个游戏文件系统。目前,我使用zziplib能够从zip存档加载文件,但是这是一个只读“文件系统”,我需要一种方法来编写新文件并在之后序列化它们(并在下次执行时反序列化它们)!在野外有没有任何有用的库可以使用,还是我应该根据任何一个为自己写一个?
答案 0 :(得分:6)
这可能是使用简单数据库作为文件系统make sens的地方之一。
使用类似sqlite
的内容来存储数据(路径为键,blob为数据或类似内容)。
这样做的一个优点是您实际上不必担心存储,并且您可以使用现有的数据库工具来“离线”查看/编辑数据,而不必编写自己的数据。 (此外,您还可以在其中存储其他游戏信息。)
答案 1 :(得分:5)
您可以查看PicoStorage和Embedded File System in C++。我没有直接使用过,但我看了他们俩。嵌入式文件系统确实有一个依赖,可能是一个显示停止 - 它需要Qt链接。也许这可以删除,但它主要用于QString和QFile(并没有理由要求UI)。
答案 2 :(得分:2)
我的六便士在上面的答案之上。 SolFS和CodebaseFS提供虚拟文件系统功能;它们都有一个用于C / C ++的API,并且看起来完全符合您的要求。仍然......你的任务规模对我来说并不清楚。你的游戏是否需要管理几十个,几百个,一个......的文件?这些文件的大小是多少?等等。在寻找合适的解决方案之前,我会提出这些问题。