在C程序中抽象文件系统的方法

Scr*_*ter 4 c c++ filesystems abstraction

我正在开始SDL程序,显然需要为文件系统加载资源.我希望程序中的文件调用与平台无关.我最初的想法是定义一个宏(让我们称之为路径的PTH),它是基于系统类型在预处理器中定义的,然后使用它在程序中进行文件调用.例如

SDL_LoadBMP(PTH("data","images","filename"));
Run Code Online (Sandbox Code Playgroud)

只会转换为与文件系统相关的东西.

如果宏是可以接受的方式,那么这些宏会是什么样的(我如何检查正在使用哪个系统,在宏中连接字符串?)

如果没有,这样做的可接受方式是什么?

And*_*ite 5

提高文件系统模块可能是你最好的选择.它对路径上的"/"运算符具有覆盖功能,因此您可以执行以下操作:

ifstream file2( arg_path / "foo" / "bar" );
Run Code Online (Sandbox Code Playgroud)

  • @awoodland:在我看到我经常做的C++标签时. (3认同)