在我被标记为重复之前,我能找到的所有类似问题在引入 std::filesystem 之前都有答案,并且可以使用特定于平台的代码或 Boost::filesystem。我正在寻找一个使用 std::filesystem 的便携式答案。
是否可以使用 std::filesystem 获取 c++ 可执行文件所在的路径(不是工作目录)?如果是,怎么做?
在我被标记为重复之前,我能找到的所有类似问题在引入 std::filesystem 之前都有答案,并且可以使用特定于平台的代码或 Boost::filesystem。我正在寻找一个使用 std::filesystem 的便携式答案。
是否可以使用 std::filesystem 获取 c++ 可执行文件所在的路径(不是工作目录)?如果是,怎么做?
不,标准文件系统工具中没有提供任何东西来获取可执行文件的路径。
即使使用第一个argv
参数也不能保证包含可执行文件的完整路径。
我知道的系统只会传入用于启动程序的字符串。
考虑到这可以使用PATH
环境变量来解决,因此无法保证,您会在那里看到完整的路径。
不过,有一些特定于操作系统的方法可以做到这一点: