【问题标题】:Embeddable FileSystem?嵌入式文件系统?
【发布时间】:2010-11-27 00:15:58
【问题描述】:

您知道一些用于将数据存储在一个二进制文件中的库/框架/embeddedEngine吗?一个文件中的文件系统之类的东西。它还必须支持在删除/更新后对数据进行分段的工具。首选语言 C++ 或 C#。平台窗口。

谢谢你的建议!!!

【问题讨论】:

  • 您是指碎片整理数据吗?压缩文件(如 ZIP)对您不起作用有什么原因吗?甚至微软最近也放弃了“文件中的迷你文件系统”的概念,推出了更高版本的 Office。
  • @Cody:从这个意义上说,“碎片整理”没有意义。我认为他的意思是他需要能够在文件中间插入数据,而无需随后将整个文件写入磁盘。
  • @Billy:是的,你说得对。我想插入数据、删除数据并避免碎片整理;)
  • @Cody ZIP 效率极低,因为对其进行任何更新都需要重写整个存档。另外,你对微软改变格式背后的动机是错误的。有一种开放文档格式越来越受欢迎,微软不得不提供它自己的专有替代品以保持市场。他们需要这种基于 XML 的格式(类似于 ODF)才能与 ODF 竞争。
  • 碎片会以一种或另一种方式出现,因为写入不连续。然而虚拟文件系统将在很大程度上处理这个问题。碎片化本身并不是一个大问题。这是对空白空间(间隙)的低效使用,虚拟文件​​系统可以很好地处理这个问题。

标签: c# c++ filesystems storage binaryfiles


【解决方案1】:

SQLite 不完全是一个文件系统,但它确实可以满足您的要求,因为它是可嵌入的,并且具有您可能想要的任何工具(当然,假设它是 SQL)。此外,所有代码都是公共领域,因此您几乎可以将其用于任何事情。

【讨论】:

    【解决方案2】:

    ESENT,you can check out my framework 用于 C#。

    与 SQLite 不同,在单个字段中保存 1GB 数据是可以的。

    【讨论】:

    • Err... 为什么您希望在单个字段中存储 1GB 的数据? (不是在库上翻录;似乎 1GB 二进制 blob 除了大多数序列化库没有处理之外还有其他问题)似乎是寻找问题的解决方案。 (但我之所以 +1 只是因为这是这里的另一种解决方案)
    • @"Billy ONeal",“你可以”并不意味着“你应该”。我们都对爱德华的问题一无所知:也许他需要处理他的太空望远镜产生的 TB 级数据集?或者他可能需要一个存储来复制存储在他的 Windows 分区上的所有数据? ESENT 比 SQLite 更通用。此外,并不是每个人都需要 SQL 引擎:SQL=额外的开销和复杂性。
    • @Sonts:很公平。 OTOH,如果他正在处理此类数据集,我认为“可嵌入”不是必需的。虽然我没有看到 SQL == 额外的开销和复杂性。
    • @Soonts:根据sqlite.org/limits.html,也可以在单个 SQLite 字段中存储 1GB。 (默认限制为 10 亿字节,但可以通过用户设置 #define 来更改,最大为 32 位整数的最大大小,顺便说一下,与 ESENT 的限制相同)
    • @"Billy ONeal",我已经在我的 ESENT 框架之上实现了一个文件系统(有关其源代码,请参见相同的链接)。空间开销约为 10%,读取速度很好,写入速度仍然足够。我所说的“开销”是指例如解析 SQL 语法的时间(对于非嵌入式 SQL 服务器 - IPC 或网络延迟)。我所说的“复杂性”是指例如关键约束、存储过程和查询优化。
    【解决方案3】:

    SQLite。真的。

    【讨论】:

      【解决方案4】:

      查看我们的SolFS。这是一个虚拟文件系统,用 C 语言编写(带有 Java 的 JNI 绑定),可用于大多数现代平台,包括 Android 和 iOS。

      【讨论】:

        【解决方案5】:

        在哪个平台上?在 Linux 上,您可以使用虚拟文件系统。

        【讨论】:

        • “平台窗口”,来自问题文本。 C# 标签是另一个线索。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-07
        • 1970-01-01
        • 1970-01-01
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多