我正在制作一个XNA游戏,它使用了很多(目前约有2800个)小资源文件。将它们从一个地方移动到另一个地方已经成为一个问题,所以我想也许我可以拉链它们并使游戏自动解压缩到内存中,最好是。我还不需要写作能力,现在只需阅读。
是否有一种简单的方法可以将文件夹解压缩到内存中并像访问磁盘上的常规文件一样简单地访问这些文件?
我一直在阅读一些类似的问题,我看到很多人都说操作系统(在我的情况下是Windows)可以比ram驱动器更好地处理文件缓存。我现在只是要解压缩和读取文件,但将来我可能需要修改或创建新文件,我希望它能够快速无缝地为用户提供。也许我应该采取不同的方法来解决我目前的问题,考虑到我未来的目标?
答案 0 :(得分:0)
我没有亲自试过这个但是如果你想能够在内存中压缩/解压缩,你可以使用MemoryStream
并将其传递到库中(例如https://github.com/icsharpcode/SharpZipLib)。您可能需要记住的事情,您是否只是将瓶颈转移到不同的瓶颈?
您还可以尝试使用HTML中的Sprites方法。您将所有Zip组合为1,并将索引组合到文件中的位置。然后将FileStream.Position移动到您要查找的资源的位置,读取(您需要的数量),然后使用它执行您需要的操作。你需要确保如果你重建任何你做的东西重建你所有的组合索引等。然后你只是复制1个文件,它恰好在那个文件中你有~2800个较小的感兴趣的段。 / p>