[問題] CFileDialog取得一筆FileName
CFileDialog 可以設定單選一個檔案或是多選多個檔案
如果,我需要將選取到的檔名放置到一個Edit Control中
我現在想到的做法有二
1.直接抓取選取檔案的第一個檔名
2.將選取的檔案存到CStringList,然後在做排序
再將List內的第一筆資料放到Edit Control欄位中
假設現在有三個檔案ABC.01.TXT、ABC.02.TXT、ABC.03.TXT
使用第一種方式
CString strFileName;
strFileName=CFileDialog::GetFileName();
假設選取第一個檔案(ABC.01.TXT)
strFileName="ABC.01.TXT"
假設全部選取三個檔案(ABC.01.TXT、ABC.02.TXT、ABC.03.TXT)
strFileName=""ABC.01.TXT" "ABC.02.TXT" "ABC.03.TXT""
而且,一次選取三個檔案的strFileName內的檔名沒有排序..
有可能第二次抓就變strFileName=""ABC.03.TXT" "ABC.01.TXT" "ABC.02.TXT""
那如果我只需要抓到第一筆的檔名,那我該怎麼做呢??
使用第二種方式
我查文章CFileDialig好像可以再選檔案時,將檔名存入
所以,我就設了一個
CStringList m_lstFileName;
並且在開啟檔案時,將檔案存入
m_lstFileName.AddTail(lpszFileName);
儘管我選取多筆或是一筆,m_lstFileName中count數只有一筆
請問是我少了什麼步驟嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.195.193
→
07/17 00:09, , 1F
07/17 00:09, 1F
→
07/17 00:21, , 2F
07/17 00:21, 2F
→
07/17 00:22, , 3F
07/17 00:22, 3F
→
07/17 20:51, , 4F
07/17 20:51, 4F
感謝EdisonX大大回覆,您指的應該是我說的第一種方法,我也有想過這種方式
但是會遇到一些問題...
如果選取一個檔案: strFileName="ABC.01.TXT"
strFileName = CFileDialog::GetFileName();
int ixFrontQuo=strFileName.Find('"');//回傳值=-1
如果選取三個檔案: strFileName=""ABC.01.TXT" "ABC.02.TXT" "ABC.03.TXT""
strFileName = CFileDialog::GetFileName();
int ixFrontQuo=strFileName.Find('"');//回傳值=0
int ixBackQuo=strFileName.Find('"',ixFrontQuo+1);
strOldFileName=strFileName.Mid(ixFrontQuo,ixBackQuo);
得到的結果: strOldFileName=""ABC.02.TXT"
第一個"不是應該是A前面那個嗎??...
→
07/17 22:04, , 5F
07/17 22:04, 5F
→
07/17 22:04, , 6F
07/17 22:04, 6F
→
07/17 22:12, , 7F
07/17 22:12, 7F
→
07/17 22:15, , 8F
07/17 22:15, 8F
我目前也是使用p大建議的方式,
如果==-1(代表只選取一個檔案),如果==0(代表選取多個檔案)
但是,又遇到另外一個問題是,使用GetFileName最多只能支援63個字元...
後面的都會被刪掉...
請問還有其他方式嗎?
※ 編輯: don750421 來自: 118.171.195.193 (07/17 23:52)
推
07/18 00:17, , 9F
07/18 00:17, 9F
→
07/18 00:18, , 10F
07/18 00:18, 10F
→
07/18 00:19, , 11F
07/18 00:19, 11F
→
07/18 00:19, , 12F
07/18 00:19, 12F
→
07/18 00:21, , 13F
07/18 00:21, 13F
→
07/18 00:23, , 14F
07/18 00:23, 14F
→
07/18 00:23, , 15F
07/18 00:23, 15F
→
07/18 00:36, , 16F
07/18 00:36, 16F
→
07/18 06:36, , 17F
07/18 06:36, 17F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章