首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有类似Filestorage类来存储文件?

是否有类似Filestorage类来存储文件?
EN

Stack Overflow用户
提问于 2010-05-30 14:52:54
回答 4查看 521关注 0票数 4

是否有类似的类可以用来存储文件和目录,就像Zip文件的使用方式一样?

因为我还没有找到任何“真实”类来编写Zip文件(像在实类中那样),所以能够将文件和目录存储在类似容器的文件中是很好的。

一个完美的API可能如下所示:

代码语言:javascript
运行
复制
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();
}

..。我希望你明白这个想法。重要的要求是:

  • 图书馆必须跨平台
  • 任何*GPL在这种情况下是不可接受的(MIT和BSD许可证是)

我已经开始考虑创建一个基于SQLite的实现(以及它存储二进制blobs的能力)。不幸的是,在SQLite数据库中存储目录结构似乎是不可能的,这使得它在这种情况下几乎毫无用处。

希望有这样一个类库是没有用的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-13 07:43:21

我花时间写了一个小的,但工作包装周围的利巴基。我不太熟悉Libarchive的所有功能,但结果符合我的需要:

归档

它将libmars用于字符串等,但我想用mars::mstring替换std::string并不太难。当然,这个包装器可以在MIT/X11许可下使用(就像libmars一样),这意味着您可以随意使用它。;-)

票数 -1
EN

Stack Overflow用户

发布于 2010-05-30 18:53:16

在SQLite db中,您可以存储类似目录的结构.您只需有一个“目录”表,每个目录有一个条目,至少有一个索引和一个“父”字段(该字段保存另一个目录的索引,如果没有父目录,则为0)。然后您可以有一个"Files“表,它包含文件属性、父目录的索引和文件内容。

就是这样,现在在关系数据库中有了目录树。

票数 2
EN

Stack Overflow用户

发布于 2010-10-03 01:35:33

有人向我介绍了PhysicsFS,它的API与您所描述的相似,但它是一个纯C,可以满足您的所有需要。一个简单的面向对象的包装器可以很容易地编写出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2939106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档