c++ - 从任意目录加载特定文件?

标签 c++ boost file-io

我想载入foo.txtfoo.txt 可能存在于data/bar/ 目录中,也可能存在于data/New Folder/ 目录中。这两个目录中可能有不同的 foo.txt,在这种情况下,我想根据我对目录排序的顺序(可能是手动的)加载一个并忽略另一个,也许是创建日期),或者加载它们并以某种方式组合结果。后者(结合两个/所有 foo.txt 文件的结果)是间接的并且超出了这个问题的范围,但是我希望将来能够做的事情。

我正在使用 SDL 和 boost::filesystem。我想让我的依赖项列表尽可能小,并尽可能跨平台。

我猜我最好的选择是获取每个目录的列表(在 data/ 文件夹中),排序/过滤这个列表,然后当我去加载 foo.txt,我在每个可能的目录中搜索它?如果我每次都要搜索几十个潜在目录,这听起来效率很低。

完成此任务的最佳方法是什么?

奖励:如果我希望某些目录成为存档文件怎么办? IE。考虑到 data/foo/data/bar.zip 都是有效的,然后从任何一个中拉取 foobar.txt 而不关心。

最佳答案

我解决了我自己的问题。我删除了 boost::filesystem,现在正在使用 PhysicsFS ,它完全支持我所需要的,是跨平台的,并且在所有地方都使用 utf-8

关于c++ - 从任意目录加载特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437242/

相关文章:

c++ - 在 C++ 中比较两种数据类型?

boost - 为什么boost在windows和linux下有不同的下载?

c++ - 如何使用 Boost tcp::iostream 指定方案、主机和端口

file-io - NetLogo:从行数可变的输入文件中读取数据

java - AtomicLong.lazySet 的 C++ 端口

c++ - 了解模板函数(在 .h 中的源代码)如何与其编译的 .lib 相关

C++:创建启动间相关仿函数列表

c++ - 如何在不使用 C++0x auto 的情况下实现这种类型特定的对象生成器

haskell - haskell : how to force evaluation of functions and write to a file sequentially?

c - 如何在 Linux 中检测是否有任何其他实体/进程正在写入文件?