【问题标题】:Is there an open-source alternative to Windows compound files? [closed]是否有 Windows 复合文件的开源替代方案? [关闭]
【发布时间】:2008-12-17 12:37:23
【问题描述】:

我正在尝试将几个文件保存到一个容器文件中。这些文件可以稍后修改,这意味着容器可能必须扩大。用户应该只将此容器视为文件系统中的单个文件。该应用程序是用 C++ 编写并在 Windows 上运行,但文件也应该可以移植到其他平台。

对容器格式的要求是:
1. 大小:允许大于 4GB 的文件。
2. 可移植性:在其他平台上打开容器文件应该是可行的。
3. 性能:更改容器内的文件时,只有代表该特定文件的“块”可以更改。特别是,可能不会完全重写该文件。
4. 结构:它应该提供一个目录结构,允许构建文件和目录的层次结构。

如果省略要求 1.) 和 2.) 复合文件(如 Word 和 Excel 使用的),则非常适合。

当然,可以设计一个满足所有要求的 API,但我想知道是否已经有一些开源解决方案可以解决这个问题?

有什么建议吗?

【问题讨论】:

    标签: c++ windows open-source containers compound-file


    【解决方案1】:

    如果您使用 C++ 构建应用程序,您正在寻找 HDF5 文件格式吗

    【讨论】:

      【解决方案2】:

      谷歌搜索“便携式结构化存储”得到:pole

      【讨论】:

      • 感谢您的链接,但我不想使用复合文件,只是具有类似概念的东西。顺便说一句,pole 和pole++ 似乎都没有维护。
      【解决方案3】:

      一些存档格式(zip、bzip2)可能会完成这项工作。

      【讨论】:

        【解决方案4】:

        为了扩展 J.F. Sebastian 的回答,tar 可能是更好的格式,因为它不压缩。它实际上只是一个容器。

        我不确定这些存档格式中的任何一种是如何可编辑的。和SharpZipLib 玩一玩,我猜你会发现 =)

        【讨论】:

        • 您可以以 zip 格式存储文件而无需任何压缩(其他存档格式也可能支持未压缩存储)。
        猜你喜欢
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        • 2011-09-08
        • 1970-01-01
        • 1970-01-01
        • 2011-01-10
        • 2012-05-03
        • 2010-10-07
        相关资源
        最近更新 更多