GetOpenFileNameA 函式 (commdlg.h)

[從 Windows Vista 開始,通用項目對話框已取代 [開啟] 和 [另存新檔] 通用對話方塊。 我們建議您使用通用項目對話框 API,而不是來自通用對話框連結庫的這些對話方塊。

建立 [ 開啟 ] 對話框,讓使用者指定要開啟的磁碟驅動器、目錄和檔案名稱。

語法

BOOL GetOpenFileNameA(
  [in, out] LPOPENFILENAMEA unnamedParam1
);

參數

[in, out] unnamedParam1

類型: LPOPENFILENAME

OPENFILENAME 結構的指標,其中包含用來初始化對話框的資訊。 當 GetOpenFileName 傳 回時,這個結構會包含使用者檔案選取的相關信息。

傳回值

類型: BOOL

如果使用者指定檔名,然後按下 [ 確定 ] 按鈕,則傳回值為非零。 OPENFILENAME 結構的 lpstrFile 成員所指向的緩衝區包含使用者指定的完整路徑和檔名。

如果使用者取消或關閉 [ 開啟 ] 對話框或發生錯誤,則傳回值為零。 若要取得擴充錯誤資訊,請呼叫 CommDlgExtendedError 函式,這可以傳回下列其中一個值。

備註

[檔案總管] 樣式的 [ 開啟 ] 對話框提供類似於 Windows 檔案總管的使用者介面功能。 您可以為檔案總管樣式的 [開啟] 對話方塊提供 OFNHookProc 勾點程式。 若要啟用攔截程式,請在OPENFILENAME結構的 Flags 成員中設定OFN_EXPLOREROFN_ENABLEHOOK旗標,並在 lpfnHook 成員中指定攔截程式的位址。

Windows 會繼續支援舊樣式 的 [開啟 ] 對話框,讓想要維護與舊樣式使用者介面一致的使用者介面的應用程式。 若要顯示舊樣式的 [開啟 ] 對話框,請啟用 OFNHookProcOldStyle 勾點程式,並確定未設定 OFN_EXPLORER 旗標。

若要顯示可讓使用者選取目錄而非檔案的對話框,請呼叫 SHBrowseForFolder 函式。

請注意,選取多個檔案時,檔名的總字元限制取決於函式的版本。

  • ANSI:32k 限制
  • Unicode:沒有限制

範例

如需範例,請參閱 開啟檔案

注意

commdlg.h 標頭會將 GetOpenFileName 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 commdlg.h (包含 Windows.h)
程式庫 Comdlg32.lib
Dll Comdlg32.dll
API 集合 ext-ms-win-shell-comdlg32-l1-1-1 (於 Windows 10 10.0.14393 版)

另請參閱

CommDlgExtendedError

通用對話框連結庫

概念

GetSaveFileName

OFNHookProc

OFNHookProcOldStyle

OPENFILENAME

其他資源

參考

SHBrowseForFolder