共用方式為


GetOpenFileNameA 函式 (commdlg.h)

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

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

語法

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

參數

[in, out] unnamedParam1

類型:LPOPENFILENAME

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

傳回值

類型:BOOL

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

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

言論

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

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

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

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

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

例子

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

注意

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 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