讀取資料夾路徑的問題 |
答題得分者是:herbert2
|
lizemountain
一般會員 發表:6 回覆:6 積分:2 註冊:2007-02-14 發送簡訊給我 |
AnsiString Path;
AnsiString fName = "*.jpg"; WIN32_FIND_DATA FileInfo; HANDLE fHandle; SelectDirectory("挑選目錄","",Path) fHandle = FindFirstFile((Path fName).c_str(),&FileInfo); if(fHandle!=INVALID_HANDLE_VALUE) { 開始讀檔,執行所需的程式 } ==================以上是有問題的程式碼=================== 我原本是將Path固定在"D:\\abc\\",這樣做可以正常讀到 可是我想要可以自選,所以用SelectDirectory這個函式來選擇資料夾 可是會出現一個問題,他輸出到Path的路徑中"\"不會變成"\\" 所以fHandle的值就不正確,導致沒辦法繼續往下執行工作 請問有辦法讓FindFirstFile裡面讀到的路徑是正確的嗎? |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
lizemountain
一般會員 發表:6 回覆:6 積分:2 註冊:2007-02-14 發送簡訊給我 |
我自己找到方法了...
原來我之前的觀念是錯的 .c_str() 這個函式就已經幫我轉成Compiler能讀的形式了 問題是出在SelectDirectory()所回傳的String 因為字串最後沒有"\",所以才會造成問題 Path = Path "\\"; 在選擇玩資料夾後加上這行就可以了
編輯記錄
lizemountain 重新編輯於 2008-11-23 21:17:34, 註解 無‧
|
lizemountain
一般會員 發表:6 回覆:6 積分:2 註冊:2007-02-14 發送簡訊給我 |
===================引 用 herbert2 文 章=================== 您可能未注意到, Path = "d:\SubDirectory" 字串尾端並無 "\" 喔! 您加列 ShowMessage(Path); 應可確認. fHandle = FindFirstFile((Path "\\" fName).c_str(),&FileInfo); // 應就 OK! 這個方法我試過,理論上應該要可行 可是還是會出現結尾沒有"/"的問題(錯誤訊息寫的) 目前我是用我上面說的方法,這樣確定可行~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |