アプリケーション(C#.NET Windowsアプリ)でデータをキャッシュするための単純なバイナリファイル形式があります。形式は基本的に短いもので、オブジェクトタイプの後に、オブジェクトIDのGUID(文字列)、オブジェクト固有のデータ(strings intsなど)が続きます。多くのオブジェクトを同じファイル(> 10000)に保存できるようにしたいのですが、特定の状況ではオンデマンドでのみロードされます。私たちが持っている解決策は、ファイル内のオブジェクトの場所のインデックスを保持することです-したがって、新しいオブジェクトの書き込みを開始すると、オブジェクトが開始するファイルストリーム内の位置を記録します。このオブジェクトをロードする場合は、このインデックス付きの場所を使用して関連データをロードします。これは正常に機能します。
ただし、ファイルを圧縮する場合でも、この方法は可能ですか?圧縮がどのように機能するか、特に使用する予定のGZipStreamクラス(System.IO.Compression)についてはあまり熱心ではありません。私が理解しているように、このクラスはSeekingまたはPositionプロパティをサポートしていません。基礎となるFileStreamのシークと位置を使用することはまだ可能ですか(私は推測していません)?基本的に、選択的にロードできる圧縮ファイルを作成することは可能ですか?その場合、どのように実行しますか?
ありがとう、
スティーブ