我们有一个简单的二进制文件格式用于在我们的应用程序(C#.NET Windows App)中缓存数据。格式基本上是一个简短的短语,表示对象类型,后面跟着对象id的guid(字符串),然后是任何对象特定的数据(字符串整数)。我们希望能够在同一个文件(> 10000)中存储多个对象,但在某些情况下只能按需加载。我们的解决方案是保留文件中对象位置的索引 - 因此,当我们开始编写新对象时,我们会记录对象开始的文件流中的位置。当我们想要加载这个对象时,我们使用这个索引位置来加载相关数据。这工作正常。加载压缩文件流的特定部分
但是,如果我们要压缩文件,这种方法仍然有可能吗?我对压缩的工作方式不是太热,特别是我们打算使用的GZipStream类(System.IO.Compression)。据我所知,这个类不支持Seeking或Position属性。仍然有可能使用底层FileStream的搜索和位置(我猜不是)?基本上,是否有可能有一个压缩文件,我们可以选择加载,如果是的话,我们该怎么做?
感谢,
史蒂夫