PathResolve 函数 (shlobj_core.h)

[PathResolve 可用于“要求”部分中指定的操作系统。 在后续版本中,它可能已更改或不可用。]

将相对路径名称或非限定路径名转换为完全限定的路径名称。

语法

int PathResolve(
  [in, out]      PWSTR    pszPath,
  [in, optional] PZPCWSTR dirs,
                 UINT     fFlags
);

参数

[in, out] pszPath

类型: PWSTR

包含要解析的路径的以 null 结尾的 Unicode 字符串。 函数返回时,字符串包含相应的完全限定路径。 此缓冲区的长度应至少为 MAX_PATH 个字符。

[in, optional] dirs

类型: PZPCWSTR

指向可选以 null 结尾的目录数组的指针,如果无法从 pszPath 解析路径,请首先搜索该数组。 此值可以为 NULL

fFlags

类型: UINT

指定函数运行方式的标志。

PRF_VERIFYEXISTS

如果验证文件是否存在,则返回 TRUE ;否则 为 FALSE

PRF_TRYPROGRAMEXTENSIONS

查找附加了以下扩展名的指定路径:.pif、.com、.bat、.cmd、.lnk和 .exe。

PRF_FIRSTDIRDEF

首先在一个或多个目录(由 dirs 指定的目录)中查找。

PRF_DONTFINDLNK

忽略.lnk文件。

PRF_REQUIREABSOLUTE

需要绝对 (完整) 路径。

返回值

类型: int

返回 TRUE,除非设置了PRF_VERIFYEXISTS。 如果设置了该标志,则如果文件已验证为存在,函数将返回 TRUE ,否则 返回 FALSE 。 它还设置可通过调用 GetLastError 检索的ERROR_FILE_NOT_FOUND错误代码。

注解

FALSE 返回值不一定意味着该文件不存在。 这可能意味着函数根本无法从提供的信息中找到文件。

如果 PathResolve 无法解析 pszPath 中指定的路径,它将使用 pszPathdirs 作为参数调用 PathFindOnPath

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h (包括 Shlobj.h)
Library Shell32.lib
DLL Shell32.dll (5.0 或更高版本)
API 集 Windows 10版本 10.0.14393 中引入的 ext-ms-win-shell-shell32-l1- (2-2)

另请参阅

PathFindOnPath