怎样获取当前应用程序所在的路径(50分)

  • 主题发起人 主题发起人 ztzdelphi
  • 开始时间 开始时间
ExePath := ExtractFilePath(Application.ExeName);
 
ExePath := ExtractFileDir(Application.Exename);
 
我以前研究过,两种方法,我回去总结一下
 
SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 用哪一个?没有太大的关系。
不过有以下的差别: ExtractFilePath 传回值的最後一个字元是反斜杠“/”。
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ExtractFileDir(Application.Exename)); // ie: c:/temp
ShowMessage(ExtractFilePath(Application.Exename)); // ie: c:/temp/
end;
相同点: 如果执行文件在根目录下(如:C:/SAMPLE.EXE)的话, 两者的传回值相同, 且最后一个字符都是“/”。

 
ExtractFilepath比ExtractFileDir最后多一个"/"
 
ExtractFileDir ( ParamStr(0) )
 
ExePath := ExtractFileDir(Application.Exename);
 
用DELOHI中的GETCURRENTDIR函数或GETCURRENTDIRECTIONARY API函数比较方便,哪怕是通过快捷方式也不影响效果。
 

ExePath := ExtractFilePath(Application.ExeName);


 
function GetExePath:string;
var exename,exepath:string;
i,pos:integer;
begin
exepath:='';
exename:=application.ExeName;
for pos:=Length(exename) downto 1 do
if exename[pos]='/' then
break;
for i:=1 to pos do
exepath:=exepath+exename;
result:=exepath;
end;
 
接受答案了.
 
后退
顶部