[問題] 如何透過萬用字元取得檔案名稱??

看板C_and_CPP作者 (經濟不景氣,好景不常在)時間12年前 (2012/11/13 12:35), 編輯推噓2(2012)
留言14則, 8人參與, 最新討論串1/2 (看更多)
請問一下,如何透過萬用字元取得完整的檔案名稱呢?? 小弟使用BCB 6.0開發,最近遇到一個問題... 假設某個資料夾(C:\\Temp\\).. 裡面有個檔案,檔名可能是 ACB-123456-XP-CE 但是,我知道的檔案Keyword只有"123456"... 那我要如何透過萬用字元取得完整的檔名呢??? 還是有其他比較快速的方式??謝謝 ---------------------------------------------- 感謝下面幾位前輩回覆... 我原本想到跟linotwo一樣,但是不曉得為何我回傳的值還是找不到= = 實際檔案名稱是"TEST48P 236771-CA-A" AnsiString strFilePath = "C:\\Temp\\*236771*"; int code = (int)::GetFileAttributesA(strFilePath.c_str()); //code 回傳值 = -1,找不到檔案... 是我的語法有錯誤嗎?還是少處理了哪些部分? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.24.110

11/13 20:39, , 1F
取得檔名,然後看看 Keyword 有沒有在裡面啊 :)
11/13 20:39, 1F

11/13 20:40, , 2F
所謂的「萬用字元」是泛指 "*" / "?"/ 都算,還是只算"*"
11/13 20:40, 2F
應該"*","?"都算...

11/13 21:21, , 3F
如果前面長度不確定的話 C:\Temp\*123456*
11/13 21:21, 3F

11/13 21:22, , 4F
如果確定是四個字元 C:\\Temp\\????123456*
11/13 21:22, 4F
※ 編輯: KSmart 來自: 114.47.24.110 (11/13 22:32)

11/13 22:34, , 5F
我有使用linetwo的方式,但是找不到檔案= =
11/13 22:34, 5F

11/13 23:15, , 6F
列出檔案一個個找吧... 萬用字元應該是regex的部份了
11/13 23:15, 6F

11/13 23:59, , 7F
我記得 FindFile 支援萬用字元吧
11/13 23:59, 7F

11/14 00:02, , 8F
你要用 FindFirstFile 找到檔案
11/14 00:02, 8F

11/14 00:04, , 9F
就可以用 WIN32_FIND_DATA.dwFileAttributes
11/14 00:04, 9F

11/14 01:43, , 10F
我再看一次文章發現盲點了,若是要找 C:\Temp 底下的
11/14 01:43, 10F

11/14 01:46, , 11F
*236771* 檔案,必須先用函式列舉(像L大說的FindFirst~)
11/14 01:46, 11F

11/14 01:47, , 12F
再針對每個取得之 file handle 取屬性.
11/14 01:47, 12F

11/14 08:32, , 13F
推Regex
11/14 08:32, 13F

11/14 09:18, , 14F
程式改成處理單一檔案,然後用 batch 來餵檔案呢 ?
11/14 09:18, 14F
文章代碼(AID): #1GeZwY_j (C_and_CPP)
文章代碼(AID): #1GeZwY_j (C_and_CPP)