我正在尝试获取该程序所在文件夹中 exe 文件的路径。但我不知道该怎么做,我做了类似的事情,但它只获取当前程序路径,而且我不知道如何替换我的程序和我想要获取路径的程序之间的文件名。
那么你能帮我获取该程序所在文件夹中的 exe 路径(我知道该 exe 的名称)...
char fullp[MAX_PATH];
char selfp[MAX_PATH] = "..//myprogram.exe";
char otherprogram[MAX_PATH] = "//test.exe";
DWORD szPath;
szPath = GetModuleFileName(NULL, selfp, sizeof(selfp));
最佳答案
Win32 API 有一大堆 Path Handling functions可用。
例如,一旦您从 GetModuleFileName()
获取了调用进程的完整路径,您就可以使用 PathRemoveFileSpec()
删除文件名,只留下文件夹路径:
char selfdir[MAX_PATH] = {0};
GetModuleFileNameA(NULL, selfdir, MAX_PATH);
PathRemoveFileSpecA(selfdir);
然后使用 PathAppend()
或PathCombine()
将不同的文件名附加到该路径:
char otherprogram[MAX_PATH] = {0};
lstrcpyA(otherprogram, selfdir);
PathAppendA(otherprogram, "test.exe");
char otherprogram[MAX_PATH] = {0};
PathCombineA(otherprogram, selfdir, "test.exe");
关于c++ - 获取当前文件夹中可执行文件的路径 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40918561/