在我被标记为重复之前,在引入std :: filesystem之前,我可以找到所有类似的问题的答案,并且可以使用平台特定的代码或Boost :: filesystem。我正在寻找使用std :: filesystem的可移植答案。
是否可以使用std :: filesystem获取c ++可执行文件所在的路径(而不是工作目录)?如果是,怎么办?
答案 0 :(得分:1)
否,standard filesystem facilities中没有提供任何文件来获取可执行文件的路径。
即使使用1st argv
argument也不能保证包含可执行文件的完整路径。
我知道的系统只会传入用于启动程序的字符串。
考虑到可以使用PATH
环境变量来解决此问题,因此无法保证,您会在此处看到完整的路径。
但是,有一些特定于操作系统的方法可以这样做: