让一个exe确定其主机目录的路径

时间:2021-06-11 07:29:48

标签: c++ std filepath

我正在编写一个 C++ 文件,我希望代码知道 exe 的路径,代码将被编译并链接到该路径。因此,无论用户将 exe 移动到哪个文件夹,exe 都将能够知道其主机文件夹的路径。我知道这与当前工作目录不同,但我可能是错的!

我的目标是让 exe 打开将与它位于同一文件夹中的文件,而不管用户将 exe 放在哪里。

代码必须能够将要打开的文件的名称附加到此路径(当然使用合适的路径分隔符),然后打开文件。这意味着由任何函数/对象返回的路径必须是 std::string 或可以读入 std::string。

我试过了:

path = std::experimental::filesystem::current_path(); 
std::string strPath (pthPath);

但是返回的路径对象不能写入strPath。 (仅供参考:我需要使用 std::experimental,因为我的 IDE(VS2017)似乎没有 std::filesystem)。编译器报告它无法将参数 1 从 "std::experimental::filesystem::v1::path" 转换为字符串。

如果我尝试,我会遇到类似的错误

std::string strPath (to_string(pthPath));

有谁知道如何解决这个问题或有更好的方法来实现相同的目标吗?

0 个答案:

没有答案