使用過TopenDialog 後的檔案路徑問題? |
答題得分者是:dllee
|
cjsoong
一般會員 發表:4 回覆:5 積分:1 註冊:2007-01-30 發送簡訊給我 |
我有寫一個測試程式, 執行時會將一些設定參數直接用fopen & Fwrite直接存入主程式的執行目錄中,另外有時會用TopenDialog 開起主程式下的一個子目錄的資料檔案來用,但目前有發生一個問題,如果我不去用Topendialog 去開起起子目錄下檔案時,設定參數會如預期寫入主目錄裡,但只要我去用Topendialog 開起子目錄檔案,這些設定參數資料就會寫在子目錄下而不會寫在主目錄中,Topendialog 好像會記錄前一次開起的錄徑,所以想請問是否有辦法讓原先該寫在主目錄下的檔案不會因為TopenDialog 的變動,我有想過直接指定目錄,但又怕有時主程式安裝的目錄名稱不一定都一樣,又會寫錯地方, 另外想的較有效方法是程式執行時就先記錄目前的錄徑,只要Topendialog 執行過就將原錄徑存回,
想請問各位前輩是否有其他方法來達到需求? 主目錄.......存設定參數資料 | | 子目錄.....資料檔位置 |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
善用 Application->ExeName 它記錄著主程式的 路徑 及 名稱,例如:
AnsiString ExePath=ExtractFilePath(Application->ExeName); // 取得主程式所在的目錄(路徑) AnsiString ExeFileName=ExtractFileName(Application->ExeName); // 取得主程式檔名(不含路徑) 有了主程式的路徑,不論 OpenDialog 切到那個目錄都可以直接用它來存取放在主程式目錄下的檔案。 同時,最好存取檔案都要指定路徑,除非您不使用 OpenDialog 或其它改目前目錄的 API, 才使用預設路徑,否則就會發生目前的問題。 另外,也可以用 API ,如 GetCurrentDirectory, SetCurrentDirectory 等儲存或設定目前目錄。 強力推薦 ShareMe 免費網路硬碟 VMASK - ViewMove Automation Software Kernel VMIO-Server/SECS/GEM dllee's blog dllee's StatPlus
------
http://www.ViewMove.com |
cjsoong
一般會員 發表:4 回覆:5 積分:1 註冊:2007-01-30 發送簡訊給我 |
感謝Dllee 的建議..已解決問題...
===================引 用 dllee 文 章=================== 善用 Application->ExeName 它記錄著主程式的 路徑 及 名稱,例如: AnsiString ExePath=ExtractFilePath(Application->ExeName); // 取得主程式所在的目錄(路徑) AnsiString ExeFileName=ExtractFileName(Application->ExeName); // 取得主程式檔名(不含路徑) 有了主程式的路徑,不論 OpenDialog 切到那個目錄都可以直接用它來存取放在主程式目錄下的檔案。 同時,最好存取檔案都要指定路徑,除非您不使用 OpenDialog 或其它改目前目錄的 API, 才使用預設路徑,否則就會發生目前的問題。 另外,也可以用 API ,如 GetCurrentDirectory, SetCurrentDirectory 等儲存或設定目前目錄。 強力推薦 ShareMe 免費網路硬碟 VMASK - ViewMove Automation Software Kernel VMIO-Server/SECS/GEM dllee's blog dllee's StatPlus |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |