代码之家  ›  专栏  ›  技术社区  ›  Liggi

如何在C#中合理地存储大量序列化二进制文件?

  •  2
  • Liggi  · 技术社区  · 15 年前

    我正在将大量对象序列化为二进制文件,但是我希望所有内容都井井有条,不希望一个文件夹中有成百上千个文件。是否有方法将它们分组到zip文件中,然后访问该zip文件中的各个文件?

    例如,假设我创建了100个二进制文件并压缩了它们。我是否可以访问该zip中的单个文件并对其进行反序列化,而无需解压缩所有内容?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ben Voigt    15 年前

    是的,zip有一个允许跳转到特定文件的存档目录。如果您打算花费更多的时间从存档中读取而不是更改它,这应该是有效的。如果您必须能够将更改提交回非易失性存储,那么除了zip以外的其他格式会更好。

    您可以尝试的另一种方法是在轻量级数据库中存储blob(二进制大对象)。

        2
  •  0
  •   Andrea Parodi    15 年前

    您可能想使用 HDF5

    我仍然没有用过它,但我必须在未来的项目中采用它。引用他们的网站:

    HDF5是一个数据模型、库和 用于存储和管理的文件格式 实现灵活高效的I/O和 对于高容量和复杂的数据。HDF5型 允许应用程序在 他们使用HDF5。HDF5技术 用于管理、操纵、查看, 分析HDF5格式的数据

    HDF5技术套件包括:

    • 一个通用的数据模型 表示非常复杂的数据对象 以及各种各样的元数据。

    • 一种完全可移植的文件格式 对数据的数量或大小没有限制 集合中的对象。

    • 软件 计算平台,来自笔记本电脑 大规模并行系统,以及 用C实现高级API,

    • 丰富的综合性能 允许访问时间的功能 操作、查看和分析

    我知道他们提供了一个 wrapper for .net 安迪,你也可以找到一些 c# example 它的用途。