如何通过CFileDialog获取文件扩展名描述

时间:2010-07-28 08:11:46

标签: mfc

CFileDialog fileDialog( 
    FALSE,                          // We are save as file dialog. 
    _T("*.txt"),                    // Default save as text format.
    _T("hello"),
    OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    _T("Text Files (*.*)|*.txt|Excel Files (*.xls)|*.xls|Excel Details Files|(*.xls)||"), 
    this);

// Returns me "xls".
const CString fileExtension = fileDialog.GetFileExt();
// Returns me "Excel Files" or "Excel Details Files"
???

获取文件扩展名说明的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您正在尝试自行检索您发送给API的说明...?您可以使用成员CFileDialog :: GetOFN从内部OPENFILENAME结构中检索它,并查看结构的lpstrFilter成员,但您必须自己解析该字符串。

但API SHGetFileInfo应该能够检索操作系统的已注册文件类型描述。将“* .xls”(或任何你想要的扩展名)传递给它。