【发布时间】:2015-07-12 21:50:19
【问题描述】:
我正在将 3D 模型数据写入文件,同时包含许多不同类型的信息(网格、纹理、动画等),大小约为 50 到 100 mb。
我想将所有这些都放在一个文件中,但如果我只需要读取该文件的一小部分来获得我想要的内容,恐怕会花费我。
我应该为此使用多个较小的文件,还是一个非常大的文件可以?我不知道文件系统如何处理试图跳过巨型文件,所以就我所知,遍历一个大文件可能代价高昂,或者根本没有问题。
另外,如果使用单个大文件,我有什么特别需要做的吗?
【问题讨论】:
-
I don't know how the filesystem treats trying to jump around giant files, so for all I know iterating through a large file may either be costly, or no problem at all.跳来跳去与从头到尾阅读所有内容直到某个特定位置不同。跳跃是可以的。 -
在这种情况下什么算“非常大”?
-
@MatsPetersson - 大约 50mb。它不是......我猜它很大,但它是我经常使用的最大文件大小
-
FWIW Quake 使用 zip 文件执行此操作。尽管它使用多个 zip 文件和某种虚拟 fs 来解析路径。对于每张地图,它只从 zips 加载它想要的内容。我想使用 zip 文件可以解决索引问题以定位特定数据。
标签: c++ filesystems stdio