GetFullPathNameA 返回项目的路径(WinAPI C)[已解决]

Posted

技术标签:

【中文标题】GetFullPathNameA 返回项目的路径(WinAPI C)[已解决]【英文标题】:GetFullPathNameA Returns Project's Path (WinAPI C) [SOLVED] 【发布时间】:2020-04-11 17:56:40 【问题描述】:

当我尝试以下代码时:

char pathStr[MAX_PATH];
DWORD pathLen = GetFullPathNameA("notepad++.exe", MAX_PATH, pathStr, NULL);

我在“pathStr”中输入了当前目录的路径,其末尾带有“notepad++.exe”,而不是文件的真实路径...我在这里遗漏了什么吗?

【问题讨论】:

GetFullPathName当前驱动器和目录的名称与指定的文件名合并 我想你要找的函数是SearchPathW 哦,好吧...那么还有另一种方法可以找到特定文件的路径吗?哈哈,我觉得自己像个白痴 谢谢!:) @ErykSun 如果在PATH目录下没有找到该文件,您也可以尝试AssocQueryStringW (ASSOCF_INIT_BYEXENAME) 并尝试在“[HKCU|]下枚举用户和系统App Paths HKLM]\Software\Microsoft\Windows\CurrentVersion\App 路径”。 【参考方案1】:

您误解了该函数的用途。该函数的 Microsoft 文档 (https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfullpathnamea) 指出:

GetFullPathName 将当前驱动器名和目录名与指定文件名合并,确定指定文件的完整路径和文件名。

您可以尝试使用 SearchPath 函数 (https://docs.microsoft.com/en-us/windows/win32/api/processenv/nf-processenv-searchpatha) 尝试仅根据文件名在当前搜索路径中查找可执行文件。

【讨论】:

谢谢,我试试看:)

以上是关于GetFullPathNameA 返回项目的路径(WinAPI C)[已解决]的主要内容,如果未能解决你的问题,请参考以下文章

通过java获取当前项目路径

IDEA中用jetty启动web项目时,url路径包含双斜杠会返回404

react根据后台返回的组件路径动态的引入组件

control层借口路径不能和返回的jsp文件夹路径相同吗

获取项目路径的几种方法

UITableview返回不正确的索引路径行[重复]