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

时间:2010-09-18 13:20:52

标签: c# .net serialization zip

我正在将大量对象序列化为二进制文件,但是我想保持整齐有序的一切,并且不需要文件夹中的数百个文件。是否有将它们分组为zip文件,然后访问该zip中的各个文件?

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可能希望使用HDF5,一种用于结构化存储的文件格式以及一组用于它的库。

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

  

HDF5是一个数据模型,库和   用于存储和管理的文件格式   数据。它支持无限制   各种数据类型,并设计   用于灵活高效的I / O和   适用于大量和复杂的数据。 HDF5   是便携式的,可扩展的,   允许应用程序进化   他们使用HDF5。 HDF5技术   套件包括工具和应用程序   用于管理,操纵,查看,   和分析HDF5格式的数据

     

HDF5技术套件包括:

     
      
  • 一个多功能的数据模型,可以   表示非常复杂的数据对象   和各种各样的元数据。

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

  •   
  • 一个软件   运行在一系列的库   计算平台,来自笔记本电脑   大规模并行系统,和   用C实现高级API,   C ++,Fortran 90和Java接口。

  •   
  • 丰富的综合性能   允许访问时间的功能   和存储空间优化。工具   和管理的应用程序,   操纵,查看和分析   集合中的数据。

  •   

我知道他们提供wrapper for .net,你也可以找到它的一些c# example