我想为我的应用创建一个文件格式,如Quake,OO和MS Office 07。
基本上是未压缩的zip文件夹或tar文件。
我需要这是跨平台(mac和windows)。
我可以通过命令提示符和bash做一些事情吗?
答案 0 :(得分:4)
如果您想要一个可移植到所有平台且包含结构化数据的单个文件,请考虑使用sqlite。您将获得一个功能齐全的ACID兼容数据库,该数据库作为单个文件存在于磁盘上。
您可以链接的库可以直接访问该文件,您也可以使用命令行工具。无论您使用何种语言,最有可能都支持它。
答案 1 :(得分:2)
Zip支持无处不在。如果你需要一个容器,那么这些肯定是不错的选择。
答案 2 :(得分:2)
查看开源7Zip压缩格式。根据您的特定需求,您可以在“归档”模式下使用它,零压缩但非常快。
它提供了一个功能强大的SDK,LZMA,来自网站:
“LZMA是7-Zip程序中7z格式的默认和通用压缩方法.LZMA提供高压缩比和非常快速的解压缩,因此非常适合嵌入式应用。例如,它可用于ROM(固件)压缩。
LZMA SDK提供了开发使用LZMA压缩的应用程序所需的文档,示例,头文件,库和工具。“
答案 3 :(得分:1)
SQLite很棒。
单个文件,跨平台,小型库,对数据的SQL访问,事务,整个辣酱玉米饼馅。
您可以使用事务来保证在崩溃时保持一致的返回点。检查uses for sqlite,他们特别提倡将其用作桌面应用程序的数据模型层。
此外,还有一个手动访问数据的命令行工具。
答案 4 :(得分:0)
首先你应该问自己,“我真的需要自己创作吗?”
根据您想要使用的内容,您可能最好使用通用格式和一些已经很好处理其中一种格式的预制库。
好的开始: http://www.destructor.de/libtar/index.htm(tar - '容器'格式) http://www.zlib.net/(zlib - 在将数据放入容器之前或之后压缩数据的方法)
如果您仍然认为自己需要自己创作,我建议您先学习一些非常简单的东西,比如tar的格式:
http://en.wikipedia.org/wiki/Tar_(file_format) 要么 http://schmidt.devlib.org/file-formats/tar-archive-file-format.html
答案 5 :(得分:0)
我决定采用一种惯例,而不是制作一种格式。容器中的一个或多个命名文件具有访问其余文件所需的元数据,并知道如何处理它们。然而,容器本身应该是一些无处不在的格式,例如zip。这里不需要重新发明轮子。