7.CFileDialog的5个读取文件信息的函数 -windows编程

7.CFileDialog的5个读取文件信息的函数 -windows编程,第1张

  引言:今天阅读前人源码,看见一个提取文件名字的功能,用了string的函数折腾了一大堆,结果一查MsDoc,微软原来早都提供了5个用于提取文件名称的函数。

  个人技术博客(文章整理+源码):https://zobolblog.github.io/LearnWinAPI/

  最终效果:

7.CFileDialog的5个读取文件信息的函数 -windows编程,第2张

1.CFileDialog::GetPathName

调用此函数可得到在对话框中输入的文件的完整路径。

CString GetPathName() const;

2.CFileDialog::GetFileName

调用此函数可得到在对话框中输入的文件名的名称。

CString GetFileName() const;

3.CFileDialog::GetFileTitle

调用此函数可得到在对话框中输入的文件的标题。

CString GetFileTitle() const;

4.CFileDialog::GetFolderPath

调用此成员函数可得到当前打开的文件夹或目录的路径,以用于资源管理器样式的“打开”或“另存为公用”对话框。

CString GetFolderPath() const;

5.CFileDialog::GetFileExt

调用此函数可得到输入对话框的文件名的扩展名。

CString GetFileExt() const;

6.官方网站:

源码:

    static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
        _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
        _T("*.xlc; *.xls|All Files (*.*)|*.*||");
    CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter,NULL,NULL,1);

    if (dlg.DoModal() != IDOK)
    {
        CommDlgExtendedError();
    }
    else {
        CString filePathName = dlg.GetPathName();//完整的文件路径
        CString fileName = dlg.GetFileName();  // 只有文件名字和后缀
        CString fileExt = dlg.GetFileExt();   // 只有后缀
        CString fileTitle = dlg.GetFileTitle(); // 只有文件名
        CString path = dlg.GetFolderPath();// 只有文件路径
    }

效果:

7.CFileDialog的5个读取文件信息的函数 -windows编程,第3张

本人个人技术博客: https://zobolblog.github.io/LearnWinAPI/ ,个人公众号:zobol的魔法藏书室,知乎,B站:zobol

文章来源:https://www.cnblogs.com/zobol/archive/2022/06/21/16398713.html

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复