全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2029
推到 Plurk!
推到 Facebook!

讀取資料夾路徑的問題

答題得分者是:herbert2
lizemountain
一般會員


發表:6
回覆:6
積分:2
註冊:2007-02-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-23 20:37:32 IP:118.169.xxx.xxx 訂閱
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
回覆:632
積分:878
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-23 21:14:36 IP:211.72.xxx.xxx 訂閱
您可能未注意到, Path = "d:\SubDirectory" 字串尾端並無 "\" 喔!
您加列 ShowMessage(Path); 應可確認.
fHandle = FindFirstFile((Path "\\" fName).c_str(),&FileInfo); // 應就 OK!
lizemountain
一般會員


發表:6
回覆:6
積分:2
註冊:2007-02-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-23 21:16:51 IP:118.169.xxx.xxx 訂閱
我自己找到方法了...

原來我之前的觀念是錯的

.c_str() 這個函式就已經幫我轉成Compiler能讀的形式了

問題是出在SelectDirectory()所回傳的String

因為字串最後沒有"\",所以才會造成問題

Path = Path "\\";

在選擇玩資料夾後加上這行就可以了
編輯記錄
lizemountain 重新編輯於 2008-11-23 21:17:34, 註解 無‧
lizemountain
一般會員


發表:6
回覆:6
積分:2
註冊:2007-02-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-23 21:22:17 IP:118.169.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
您可能未注意到, Path = "d:\SubDirectory" 字串尾端並無 "\" 喔!
您加列 ShowMessage(Path); 應可確認.
fHandle = FindFirstFile((Path "\\" fName).c_str(),&FileInfo); // 應就 OK!

這個方法我試過,理論上應該要可行
可是還是會出現結尾沒有"/"的問題(錯誤訊息寫的)
目前我是用我上面說的方法,這樣確定可行~
系統時間:2017-10-20 18:24:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!