我还没有找到关于这个的明确答案。我试图从我的 .EXE 访问子文件夹中的文件。当我之前问过时,人们告诉我如果我想访问/info/中的某些内容,请使用绝对位置,即“c:/game/info/”
但是对于我或任何人来说,假设某人将从同一目录中使用他们的程序是完全不合理的。如果用户只有 D 盘怎么办?诸如此类。
所以我的问题是:如何在不依赖整个路径的情况下从我的可执行文件访问子目录中的文件?
最佳答案
您的标题是“Windows”,所以我将给出特定于 WinAPI 的答案。
在 Windows 上,您可以使用 GetModuleFileName(NULL, ...)
找到您的应用程序目录, 和 PathRemoveFileSpec
.那么PathAppend
将生成您的数据文件的完整路径。
或者您可以将.exe 文件中的数据存储为Win32 resources。 , 所以他们永远不会分开。
请注意,此方法通常仅适用于对数据文件的只读访问。如果您尝试在您的应用程序目录中写入文件,您可能会被 ACL 阻止(取决于计算机的安装位置和本地安全设置)。
关于c++ - 来自当前 Windows 位置的文件 I/O C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319606/