GetFinalPathNameByHandle

GetFinalPathNameByHandle 是 Windows 作業系統提供的 API 函式,用於通過檔案句柄檢索檔案或目錄的最終路徑。該函式屬於 WinAPI 的檔案管理系統,支持返回規範化路徑或原始設備路徑,適用於處理符號連結、掛載點及長路徑等場景。

該函式接收檔案句柄、緩衝區、緩衝區大小及路徑格式標誌四個參數。通過 dwFlags 參數可選擇路徑格式(如 VOLUME_NAME_DOS 返回驅動器號路徑,VOLUME_NAME_GUID 返回卷 GUID 路徑),返回值包含路徑字元串的實際長度,若緩衝區不足則返回所需大小以便動態分配。錯誤時返回零,需配合 GetLastError 處理錯誤代碼。

該函式自 Windows Vista 系統引入,旨在解決早期路徑解析的局限性,增強對複雜檔案系統結構的支持。其實現與 NT 核心的路徑處理邏輯緊密關聯,後續版本(如 Windows 10 1709)擴展了對 SMB 協定下規範化路徑的支持。

基本介紹

  • 中文名:檢索指定檔案的最終路徑
  • 外文名:GetFinalPathNameByHandle
  • hFile:檔案或目錄的句柄
  • lpszFilePath:指向一個接收路徑的快取區
函式,參數,返回類型,返回值,

函式

語法
DWORD WINAPI Get Final Path Name By Handle(__in HANDLE hFile,__out LPTSTR lpszFilePath,
__in DWORD cchFilePath,__in DWORD dwFlags);

參數

hFile
檔案或目錄的句柄
lpszFilePath
只想一個接收路徑或hFile的快取區。
cchFilePath
lpszFilePath 的大小,以位元組為單位。該值不包含空字元
dwFlags

返回類型

此參數可以是下列值之一。
FILE_NAME_NORMALIZED 返回標準驅動器名。這是默認值。
FILE_NAME_OPENED 返回打開檔案名稱稱(非標準)。
此參數,還可以包含下列值之一。
VOLUME_NAME_DOS 返回的路徑與驅動器號。這是默認值。
VOLUME_NAME_GUID 返回帶有卷GUID路徑而不是驅動器名稱的路徑。
VOLUME_NAME_NONE 返回的路徑沒有驅動器的信息。
VOLUME_NAME_NT 返回的路徑的卷設備路徑。

返回值

如果函式成功,返回值為接受到的字元串長度(以位元組為單位),此函式的返回值包括終止 null 字元的大小。
如果函式失敗,因為lpszFilePath是太小,無法容納該字元串加終止空字元,返回值是所需的緩衝區大小。此值包括終止 null 字元的大小。

熱門詞條

聯絡我們