是否有类似的类可以用来存储文件和目录,就像Zip文件的使用方式一样?
因为我还没有找到任何“真实”类来编写Zip文件(像在实类中那样),所以能够将文件和目录存储在类似容器的文件中是很好的。
一个完美的API可能如下所示:
int main()
{
ContainerFile cntf("myContainer.cnt", ContainerFile::CREATE);
cntf.addFile("data/some-interesting-stuff.txt");
cntf.addDirectory("data/foo/");
cntf.addDirectory("data/bar/", ContainerFile::RECURSIVE);
cntf.close();
}..。我希望你明白这个想法。重要的要求是:
我已经开始考虑创建一个基于SQLite的实现(以及它存储二进制blobs的能力)。不幸的是,在SQLite数据库中存储目录结构似乎是不可能的,这使得它在这种情况下几乎毫无用处。
希望有这样一个类库是没有用的吗?
发布于 2010-10-13 07:43:21
我花时间写了一个小的,但工作包装周围的利巴基。我不太熟悉Libarchive的所有功能,但结果符合我的需要:
归档
它将libmars用于字符串等,但我想用mars::mstring替换std::string并不太难。当然,这个包装器可以在MIT/X11许可下使用(就像libmars一样),这意味着您可以随意使用它。;-)
发布于 2010-05-30 18:53:16
在SQLite db中,您可以存储类似目录的结构.您只需有一个“目录”表,每个目录有一个条目,至少有一个索引和一个“父”字段(该字段保存另一个目录的索引,如果没有父目录,则为0)。然后您可以有一个"Files“表,它包含文件属性、父目录的索引和文件内容。
就是这样,现在在关系数据库中有了目录树。
发布于 2010-10-03 01:35:33
有人向我介绍了PhysicsFS,它的API与您所描述的相似,但它是一个纯C,可以满足您的所有需要。一个简单的面向对象的包装器可以很容易地编写出来。
https://stackoverflow.com/questions/2939106
复制相似问题