我目前正在开发一款模拟操作系统的游戏。因此我需要一个游戏文件系统。目前,我使用zziplib能够从zip压缩文件加载文件,但是这是一个只读的“文件系统”,我需要一种方法来写入新文件并在之后对它们进行序列化(并在下次执行过程中对它们进行反序列化)!是否有任何有用的图书馆在野外使用,或者我应该根据任何一种书写我自己的图书馆?Windows下的C/C++虚拟文件系统
回答
这可能是使用简单的数据库作为文件系统的敏感地方之一。
使用类似sqlite
的东西来存储数据(路径作为键,blob作为数据或类似的东西)。
这样做的好处之一是,您实际上不必担心存储问题,并且您可以使用现有的数据库工具“离线”查看/编辑数据,而不必自行编写数据。 (此外,您还可以在其中存储其他游戏信息。)
您可能会检出PicoStorage和Embedded File System in C++。我还没有直接使用,但我已经看过他们两个。嵌入式文件系统确实有一个依赖关系,可能是一个阻碍 - 它需要Qt被链接到。也许可以删除,但它主要用于QString和QFile(并且没有理由需要UI)。
Qt作为一个依赖将是一个矫枉过正 - 我宁愿使用sqlite!但是,谢谢你的信息。 – 2011-06-13 18:23:45
两者都已过时,似乎被遗弃。 – 2011-06-14 18:50:25
我在上面的答案之上的六便士。 SolFS和CodebaseFS提供虚拟文件系统功能;两者都有一个C/C++的API,并且看起来完全符合你的要求。尽管如此,你的任务规模并不明确。你的游戏是否需要管理数十,数百,zounds ......文件?这些文件的大小是多少?等等,我会在寻找合适的解决方案之前提出这些问题。
- 1. 的Hadoop文件系统是物理文件系统或虚拟文件系统
- 2. 在PHP中的虚拟文件系统?
- 3. 简单的虚拟文件系统
- 4. Perl中的虚拟文件系统
- 5. 虚拟文件系统列表
- 6. Web API作为虚拟文件系统?
- 7. 虚拟文件系统设计
- 8. 寻找虚拟注册表/虚拟文件系统项目
- 9. 虚拟linux系统
- 10. Windows本机具有虚拟或临时文件系统吗?
- 11. 什么是用户空间中的虚拟文件系统或文件系统?
- 12. 64Bit虚拟系统的先决条件
- 13. 阅读使用虚拟文件系统创建的文件JIMFS
- 14. 访问虚拟linux系统
- 15. 虚拟敷料系统
- 16. 虚拟文件系统映射到本地文件
- 17. “虚拟文件系统”(VFS)文件夹名称
- 18. 虚拟存储系统关系
- 19. 源文件X在c#下的Windows系统文件保护下?
- 20. 使用scala或java的虚拟文件系统
- 21. MySql中的虚拟文件夹系统,带有“模板”
- 22. 规范化虚拟文件系统的路径表达式
- 23. 通过键值数据库备份的虚拟文件系统
- 24. 用Python编程虚拟文件系统的最简单方法
- 25. 带保险丝的Perl虚拟文件系统
- 26. Laravel 5.4 PHPUnit测试的虚拟文件系统
- 27. C++中的虚拟(平面)文件系统
- 28. Explorer的“虚拟文件系统”是否具有公共API?
- 29. 创建联网的虚拟HDD /文件系统
- 30. PDFMAKE:虚拟文件系统中找不到的'Roboto-Regular.ttf'GOULP
绝对如此。由于同样的原因,SQLite已被其他游戏使用。 – 0xC0000022L 2011-06-13 14:38:55
我完全忘记了,我可能会使用SQL,它确实非常酷,可以轻松包含!感谢您的提醒! – 2011-06-13 18:22:56