我正在尝试返回正在运行的cpp文件的路径。有谁知道实现这个的方法或方法?例如,假设我在计算机test.cpp
的路径中有此文件"C:\Programming\Visual Studio\Test\Test\test.cpp"
。
有没有办法在不手动输入的情况下获取此路径?我试图确定一种使用c ++返回此路径的方法。
对于我的ftp程序,我需要获取.txt
,.pdf
,。etc文件的列表,这些文件与.cpp文件位于同一路径。这就是我想要.cpp
路径而不是.exe
路径的原因。
有什么建议吗?
答案 0 :(得分:2)
正如你在评论中所述:
“...但是对于我的ftp程序,我需要获取
.txt
,
您应该定义一种资源目录,该目录是在安装应用程序时创建的,以及安装过程将复制.cpp
,.txt
等文件的位置。
这种方式意味着 你有一个安装过程 (这可能是最简单的形式,通过创建和提取.pdf
存档),捆绑了沿着这些资源文件的可执行.zip
文件,安装在目标机器上。通常,您不会在那里包含源文件。
在这种情况下,引用源.exe
文件的位置实际上是个坏主意,因为最终安装的程序通常没有编译源代码的概念。此程序也可以安装在具有与您不同的环境(特别是开发环境)的计算机上。
通用安装路径的更好入口点是相对于使用.cpp
程序条目的argv[0]
参数为您提供的路径。它为您提供已安装的可执行文件的完整路径。
对于其他人,请使用以下操作: boost::filesystem
library以便携方式操作路径和文件名,如评论中所述。
答案 1 :(得分:1)
这个怎么样?
#include<iostream>
#include <string>
using namespace std;
int main()
{
string file_path = __FILE__;
string dir_path = file_path.substr(0, file_path.rfind("\\"));
cout<<dir_path<<endl;
return 0;
}