我們有一個簡單的二進制文件格式用於在我們的應用程序(C#.NET Windows App)中緩存數據。格式基本上是一個簡短的短語,表示對象類型,後面跟着對象id的guid(字符串),然後是任何對象特定的數據(字符串整數)。我們希望能夠在同一個文件(> 10000)中存儲多個對象,但在某些情況下只能按需加載。我們的解決方案是保留文件中對象位置的索引 - 因此,當我們開始編寫新對象時,我們會記錄對象開始的文件流中的位置。當我們想要加載這個對象時,我們使用這個索引位置來加載相關數據。這工作正常。加載壓縮文件流的特定部分
但是,如果我們要壓縮文件,這種方法仍然有可能嗎?我對壓縮的工作方式不是太熱,特別是我們打算使用的GZipStream類(System.IO.Compression)。據我所知,這個類不支持Seeking或Position屬性。仍然有可能使用底層FileStream的搜索和位置(我猜不是)?基本上,是否有可能有一個壓縮文件,我們可以選擇加載,如果是的話,我們該怎麼做?
感謝,
史蒂夫