VS2013 MFC拖檔案到對話方塊獲取檔名(不包含字尾和路徑)
阿新 • • 發佈:2019-02-02
最近搞個小工具,為了方便用就做了個可以拖拽檔案到話框的功能。
然後生成檔案預設用原始檔名,問題就來了:拖拽得到的檔名是全路徑的,無法獲取不包含檔案字尾的檔名。
具體問題描述:
例如檔案在:D:\test.txt,那麼拖拽得到的字元就是 “D:\\test.txt”,而我們只想得到 test。
所以我這邊用瞭如下程式碼來獲取 test
以上是隨手記,萬一哪天自己再用到了,查起來方便。void CTxt2ExcelDlg::OnDropFiles(HDROP hDropInfo) { //獲取檔案路徑並顯示到編輯框中 CString filename; //檔名不包含字尾。 TCHAR filePath[MAX_PATH] = { 0 }; //單檔案操作,第二引數置0,第三個引數返回檔案路徑 DragQueryFile(hDropInfo, 0, filePath, MAX_PATH - 1); SetDlgItemText(IDC_EDIT_TEXT, filePath); filename = filePath; filename = filename.Mid(filename.ReverseFind('\\') + 1, ((filename.ReverseFind('.') - filename.ReverseFind('\\'))-1));//用CString 成員函式來獲取。 DragFinish(hDropInfo); CDialogEx::OnDropFiles(hDropInfo); }