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

相对路径如何转换为绝对路径

答題得分者是:Stallion
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-05 09:21:50 IP:60.191.xxx.xxx 訂閱
问题是这样的:
已知任意相对路径: strPath:=' .\bin\abc' ;
怎样根据程序运行的当前目录来转换为绝对路径 strPath:='d:\Myapp\bin\abc';
请指教,谢谢!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-05 09:39:35 IP:59.124.xxx.xxx 未訂閱
試試 function GetCurrentDir: string;
GetCurrentDir returns the fully qualified name of the current directory.
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-05 10:11:38 IP:60.191.xxx.xxx 訂閱
谢谢您的热心,不过GetCurrentDir不是我要的,我是要得到一个用户输入的相对路径,然后把它转换为绝对路径。
如果用户输入: ..\ls\bin
我当前的目录是: c:\prg
那么需要得到绝对路径是:c:\ls\bin
谢谢!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-05 13:17:42 IP:59.124.xxx.xxx 未訂閱
如果 C 槽 D 槽都有 ls\bin 的目錄, 要怎麼判斷?
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-05 13:21:22 IP:211.22.xxx.xxx 未訂閱
不要想得太複雜了,hagar兄的方法是正確的,可以先這樣做:
1.SetCurrentDirectory( LPCTSTR lpPathName ); // 成功傳回非0值,不成功傳回0。
2.於設定目錄成功後
GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer );
即可取得目前目錄的完整路徑。
if ( SetCurrentDirectory( LPCTSTR lpPathName ) = 0 ) then
GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer )
else
ShowMessage("設定目錄錯誤");
請參考
===================引 用 文 章===================
谢谢您的热心,不过GetCurrentDir不是我要的,我是要得到一个用户输入的相对路径,然后把它转换为绝对路径。
如果用户输入: ..\ls\bin
我当前的目录是: c:\prg
那么需要得到绝对路径是:c:\ls\bin
谢谢!
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-05 13:23:56 IP:60.191.xxx.xxx 訂閱
试过了,可以用,谢谢两位!
===================引 用 文 章===================
不要想得太複雜了,hagar兄的方法是正確的,可以先這樣做:
1.SetCurrentDirectory( LPCTSTR lpPathName ); //? 成功傳回非0值,不成功傳回0。
2.於設定目錄成功後
? GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer );
? 即可取得目前目錄的完整路徑。
?if ( SetCurrentDirectory( LPCTSTR lpPathName ) = 0 ) then
????? GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer )
else
???? ShowMessage("設定目錄錯誤");
請參考
===================引 用 文 章===================
谢谢您的热心,不过GetCurrentDir不是我要的,我是要得到一个用户输入的相对路径,然后把它转换为绝对路径。
如果用户输入: ..\ls\bin
我当前的目录是: c:\prg
那么需要得到绝对路径是:c:\ls\bin
谢谢!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
zjwork
一般會員


發表:1
回覆:3
積分:5
註冊:2007-04-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-25 11:08:57 IP:219.130.xxx.xxx 訂閱
WPath := ExtractFilePath(Application.ExeName);
這個ok,挺簡單
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-05-04 20:44:44 IP:211.20.xxx.xxx 訂閱
StrPath:='.\bin\abc';
StrPath:=ExpandFileName(StrPath); //

===================引 用 WoodTiger 文 章===================
问题是这样的:
已知任意相对路径: strPath:=' .\bin\abc' ;
怎样根据程序运行的当前目录来转换为绝对路径 strPath:='d:\Myapp\bin\abc';
请指教,谢谢!
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-05-06 17:10:13 IP:60.191.xxx.xxx 訂閱
太谢谢了!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
系統時間:2024-04-20 19:19:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!