2011-06-13 32 views
6

我目前正在开发一款模拟操作系统的游戏。因此我需要一个游戏文件系统。目前,我使用zziplib能够从zip压缩文件加载文件,但是这是一个只读的“文件系统”,我需要一种方法来写入新文件并在之后对它们进行序列化(并在下次执行过程中对它们进行反序列化)!是否有任何有用的图书馆在野外使用,或者我应该根据任何一种书写我自己的图书馆?Windows下的C/C++虚拟文件系统

回答

6

这可能是使用简单的数据库作为文件系统的敏感地方之一。

使用类似sqlite的东西来存储数据(路径作为键,blob作为数据或类似的东西)。

这样做的好处之一是,您实际上不必担心存储问题,并且您可以使用现有的数据库工具“离线”查看/编辑数据,而不必自行编写数据。 (此外,您还可以在其中存储其他游戏信息。)

+1

绝对如此。由于同样的原因,SQLite已被其他游戏使用。 – 0xC0000022L 2011-06-13 14:38:55

+0

我完全忘记了,我可能会使用SQL,它确实非常酷,可以轻松包含!感谢您的提醒! – 2011-06-13 18:22:56

5

您可能会检出PicoStorageEmbedded File System in C++。我还没有直接使用,但我已经看过他们两个。嵌入式文件系统确实有一个依赖关系,可能是一个阻碍 - 它需要Qt被链接到。也许可以删除,但它主要用于QString和QFile(并且没有理由需要UI)。

+0

Qt作为一个依赖将是一个矫枉过正 - 我宁愿使用sqlite!但是,谢谢你的信息。 – 2011-06-13 18:23:45

+0

两者都已过时,似乎被遗弃。 – 2011-06-14 18:50:25

2

我在上面的答案之上的六便士。 SolFSCodebaseFS提供虚拟文件系统功能;两者都有一个C/C++的API,并且看起来完全符合你的要求。尽管如此,你的任务规模并不明确。你的游戏是否需要管理数十,数百,zounds ......文件?这些文件的大小是多少?等等,我会在寻找合适的解决方案之前提出这些问题。