0

我正在制作一个 XNA 游戏,它使用了很多(目前约 2800 个)小资源文件。在未存档的情况下将它们从一个地方移动到另一个地方已经成为一个问题,所以我想也许我可以压缩它们并让游戏自动将它们解压缩到内存中,最好是。我还不需要写作能力,现在只需要阅读。

有没有一种简单的方法可以将文件夹解压缩到内存中并像访问这些文件一样,或者像磁盘上的常规文件一样简单?


我一直在阅读一些类似的问题,我看到很多人说操作系统(在我的例子中是 Windows)可以比 ram 驱动器更好地处理文件缓存。我现在只是解压缩和读取文件,但将来我可能需要修改或创建新文件,我希望它对用户来说是快速和无缝的。考虑到我未来的目标,也许我应该采取不同的方法来解决我当前的问题?

4

1 回答 1

0

我没有亲自尝试过,但是如果您希望能够在内存中压缩/解压缩,您可以使用 aMemoryStream并将其传递到库中(例如https://github.com/icsharpcode/SharpZipLib)。您可能需要记住的事情是,您是否只是将瓶颈转移到另一个瓶颈?

您也可以尝试类似在 HTML 中使用 Sprites 的方法。您将所有 Zip 合并为 1,并带有它们在文件中位置的索引。然后你将你的 FileStream.Position 移动到你正在寻找的资源的位置,阅读(你需要的数量)然后用它做你需要的事情。您需要确保如果您重建任何东西,您会重建所有组合索引等。然后您只需复制 1 个文件,碰巧在该文件中您有大约 2800 个较小的感兴趣段。

于 2013-03-05T04:58:56.963 回答