从当前Windows位置C++的文件I/O.

Wal*_*oks 3 c++ file-io winapi path

我还没有找到关于此的明确答案.我试图从我的.EXE访问子文件夹中的文件.当我之前问过,人们告诉我使用绝对位置即"c:/ game/info /"如果我想访问/ info /中的内容

但是,对于我或任何人来说,假设有人要从同一目录中使用他们的程序是完全不合理的.如果用户只有D盘怎么办?诸如此类的事情.

所以我的问题是:如何在不依赖整个路径的情况下从我的可执行文件访问子目录中的文件?

Ben*_*igt 8

你的标题是"Windows",所以我会给出一个特定于WinAPI的答案.

在Windows上,您可以使用GetModuleFileName(NULL, ...)和找到您的应用程序目录PathRemoveFileSpec.然后PathAppend将创建数据文件的完整路径.

或者您可以将数据存储在.exe文件中作为Win32资源,因此它们永远不会分开.


请注意,此方法通常仅适用于对数据文件的只读访问.如果您尝试在应用程序目录中写入文件,则可能会被ACL阻止(取决于计算机的安装位置和本地安全设置).