引言:今天閱讀前人原始碼,看見一個提取檔案名字的功能,用了string的函式折騰了一大堆,結果一查MsDoc,微軟原來早都提供了5個用于提取檔案名稱的函式,
個人技術博客(文章整理+原始碼): https://zobolblog.github.io/LearnWinAPI/
最終效果:
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();// 只有檔案路徑 }
效果:
本人個人技術博客: https://zobolblog.github.io/LearnWinAPI/ ,個人公眾號:zobol的魔法藏書室,知乎,B站:zobol
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494244.html
標籤:其他
