一个 Windows 桌面应用程序,我所在的开发团队使用旧版 MFC CArchive 作为其应用程序文件格式,将文本文件和二进制文件序列化到磁盘和从磁盘中读取。该应用程序用于本地化这些文本/二进制文件中包含的字符串,CArchive 封装了一个翻译“项目”,因此它被生成为一个包含一个或多个这些子文件的整体文件。
这种文件格式在很多方面都显示了它的时代,我们正在寻求改变为更现代的东西。我们主要担心的是它速度慢并且占用大量内存;这不是随机访问,因此访问存档中的任意文件甚至只是生成目录列表都需要将整个内容加载到内存中,因此操作存档的空间和时间消耗取决于其大小,并且不可行存档的就地更新。
最后,扩展格式是痛苦的,因为它涉及到我们在代码中乱扔条件语句,这些条件语句根据存档的版本标记的值将某些字段(或不)序列化到存档或从存档序列化。
我花了一些时间寻找替代方案,其中最突出的是 ZIP/7Z 或 SQLite,因为 ZIP 已经内置了大部分文件管理/索引功能,而 SQLite 将是存储、检索的理想选择和搜索字符串,所以我认为这两种技术的某种组合可能是要走的路。
据我所知,诀窍是以这样一种方式组织或分区 SQLite DB每个文件,我不确定。
有没有其他人尝试过这样的事情,如果是这样,有什么建议吗?
谢谢