1. 程式人生 > >VS2013 MFC拖檔案到對話方塊獲取檔名(不包含字尾和路徑)

VS2013 MFC拖檔案到對話方塊獲取檔名(不包含字尾和路徑)

最近搞個小工具,為了方便用就做了個可以拖拽檔案到話框的功能。

然後生成檔案預設用原始檔名,問題就來了:拖拽得到的檔名是全路徑的,無法獲取不包含檔案字尾的檔名。

具體問題描述:

例如檔案在: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);
}
以上是隨手記,萬一哪天自己再用到了,查起來方便。