【100】Delphi获取自身文件名 在网上找了半天没有结果,来问问,我想获取程序自身的文件名比如我把Delphi写好的程序放在“D:\123\”里面,然后我F2重命名为“123.exe”哪么请问我要在代码里怎么写才能让一个变量来保存当前文件名,需要什么函数,怎么用,谢谢各位大大。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也可直接用ParamStr(0)它就是当前运行程序名 获取的是文件路径- -|,这是代码。procedure TForm1.FormCreate(Sender: TObject);var FileName:String[11];begin FileName:=Application.ExeName; Form1.Text:=FileName; Memo1.Text:='';end;end. 1、两种方法ParamStr(0)Application.ExeName2、简单比较跟踪一下VCL源码就会发现,它们其实是殊途同归的第1种方法则是调用全局函数ParamStr,是过程式编程风格写法第2种写法通过Application类的ExeName属性,是OO编程风格写法property ExeName: string read GetExeName;function TApplication.GetExeName: string;begin Result := ParamStr(0);end;和第1种方法走到一起了,呵呵再翻开ParamStr的实现,会发现最终是调用了API函数GetModuleFileName那么,第3种方法就有了,直接调用GetModuleFileName当然,实际运用中不必那么费事从这个小例子管中窥豹,也可以一瞥VCL对API的层层封装之道3、楼主问题中“重命名为123.exe来保存当前文件名”,表述不是太清楚也不知道大家是否都说在点子上 (*//标题:<<Delphi6函数大全-SysUtils.pas>>格式:text大小:92671制作:Zswang日期:2002-01-25//*)//......首部 function ExtractFilePath(const FileName: string): string; $[SysUtils.pas功能 返回文件名所在的路径说明 ExtractFilePath('C:\')='C:\';ExtractFilePath('\\Server\Tool\Calc.exe')='\\Server\Tool\'参考 function SysUtils.LastDelimiter;function System.Copy例子 Edit1.Text := ExtractFilePath(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExtractFileDir(const FileName: string): string; $[SysUtils.pas功能 返回文件名所在的目录说明 ExtractFileDir('C:\')='C:\';ExtractFileDir('\\Server\Tool\Calc.exe')='\\Server\Tool'参考 function SysUtils.LastDelimiter;function System.Copy例子 Edit1.Text := ExtractFileDir(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExtractFileDrive(const FileName: string): string; $[SysUtils.pas功能 返回文件名所在驱动器说明 ExtractFileDrive('C:\')='C:';ExtractFileDrive('\\Server\Tool\Calc.exe')='\\Server\Tool'参考 function System.Copy例子 Edit1.Text := ExtractFileDrive(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExtractFileName(const FileName: string): string; $[SysUtils.pas功能 返回绝对文件名说明 ExtractFileName('C:\')='';ExtractFileName('\\Server\Tool\Calc.exe')='Calc.exe'参考 function SysUtils.LastDelimiter;function System.Copy例子 Edit1.Text := ExtractFileName(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExtractFileExt(const FileName: string): string; $[SysUtils.pas功能 返回文件名的扩展名说明 ExtractFileExt('C:\')='';ExtractFileExt('\\Server\Tool\Calc.exe')='.exe'参考 function SysUtils.LastDelimiter;function System.Copy例子 Edit1.Text := ExtractFileExt(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExpandFileName(const FileName: string): string; $[SysUtils.pas功能 返回文件名的完整表示说明 ExpandFileName('hello.pas')='C:\Program Files\Borland\Delphi6\Projects\hello.pas'参考 function Windows.GetFullPathName例子 Edit1.Text := ExpandFileName(Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部 function ExpandFileNameCase(const FileName: string; out MatchFound: TFilenameCaseMatch): string; $[SysUtils.pas功能 分情况返回文件名的完整表示说明 type TFilenameCaseMatch = (mkNone, mkExactMatch, mkSingleMatch, mkAmbiguous);参考 function Windows.GetFullPathName;function SysUtils.SameFileName;function SysUtils.FindFirst例子///////Begin ExpandFileNameCaseprocedure TForm1.Button1Click(Sender: TObject);var vFilenameCaseMatch: TFilenameCaseMatch;begin Edit1.Text := ExpandFileNameCase(Edit2.Text, vFilenameCaseMatch); SpinEdit1.Value := Ord(vFilenameCaseMatch);end;///////End ExpandFileNameCase━━━━━━━━━━━━━━━━━━━━━首部 function ExpandUNCFileName(const FileName: string): string; $[SysUtils.pas功能 返回LINUX文件名的完整表示说明 ExpandUNCFileName('C:/')='C:\'参考 function SysUtils.ExpandFileName例子 Edit1.Text := ExpandUNCFileName(Edit2.Text);//...... delphi 中如何加入一个非form类? 如何判断Edit1.Text内容在ListView1中存在 初学者的一个关于查询的语句 请教如何实现:类似天气预报,当鼠标移到图上北京方块时,出现包含温度风力等的小提示框?在线等! 请问如何将DLL中的窗体显示在其调用程序的一个PANEL上呢, 非常感谢大家? 招聘:开发工程师 小问题 如何让线程可以sendmessage接收消息呢? 关于FLASH控件,各位研究研究!!! 请教!关于数据转换问题! delphi , webservice 与三层 qreport自动折行问题?
ParamStr(0)
它就是当前运行程序名
procedure TForm1.FormCreate(Sender: TObject);
var
FileName:String[11];
begin
FileName:=Application.ExeName;
Form1.Text:=FileName;
Memo1.Text:='';
end;end.
ParamStr(0)
Application.ExeName2、简单比较
跟踪一下VCL源码就会发现,它们其实是殊途同归的
第1种方法则是调用全局函数ParamStr,是过程式编程风格写法第2种写法通过Application类的ExeName属性,是OO编程风格写法
property ExeName: string read GetExeName;function TApplication.GetExeName: string;
begin
Result := ParamStr(0);
end;和第1种方法走到一起了,呵呵再翻开ParamStr的实现,会发现最终是调用了API函数GetModuleFileName
那么,第3种方法就有了,直接调用GetModuleFileName
当然,实际运用中不必那么费事从这个小例子管中窥豹,也可以一瞥VCL对API的层层封装之道3、楼主问题中“重命名为123.exe来保存当前文件名”,表述不是太清楚
也不知道大家是否都说在点子上
(*//
标题:<<Delphi6函数大全-SysUtils.pas>>
格式:text
大小:92671
制作:Zswang
日期:2002-01-25
//*)
//......首部 function ExtractFilePath(const FileName: string): string; $[SysUtils.pas
功能 返回文件名所在的路径
说明 ExtractFilePath('C:\')='C:\';ExtractFilePath('\\Server\Tool\Calc.exe')='\\Server\Tool\'
参考 function SysUtils.LastDelimiter;function System.Copy
例子 Edit1.Text := ExtractFilePath(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExtractFileDir(const FileName: string): string; $[SysUtils.pas
功能 返回文件名所在的目录
说明 ExtractFileDir('C:\')='C:\';ExtractFileDir('\\Server\Tool\Calc.exe')='\\Server\Tool'
参考 function SysUtils.LastDelimiter;function System.Copy
例子 Edit1.Text := ExtractFileDir(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExtractFileDrive(const FileName: string): string; $[SysUtils.pas
功能 返回文件名所在驱动器
说明 ExtractFileDrive('C:\')='C:';ExtractFileDrive('\\Server\Tool\Calc.exe')='\\Server\Tool'
参考 function System.Copy
例子 Edit1.Text := ExtractFileDrive(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExtractFileName(const FileName: string): string; $[SysUtils.pas
功能 返回绝对文件名
说明 ExtractFileName('C:\')='';ExtractFileName('\\Server\Tool\Calc.exe')='Calc.exe'
参考 function SysUtils.LastDelimiter;function System.Copy
例子 Edit1.Text := ExtractFileName(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExtractFileExt(const FileName: string): string; $[SysUtils.pas
功能 返回文件名的扩展名
说明 ExtractFileExt('C:\')='';ExtractFileExt('\\Server\Tool\Calc.exe')='.exe'
参考 function SysUtils.LastDelimiter;function System.Copy
例子 Edit1.Text := ExtractFileExt(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExpandFileName(const FileName: string): string; $[SysUtils.pas
功能 返回文件名的完整表示
说明 ExpandFileName('hello.pas')='C:\Program Files\Borland\Delphi6\Projects\hello.pas'
参考 function Windows.GetFullPathName
例子 Edit1.Text := ExpandFileName(Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function ExpandFileNameCase(const FileName: string; out MatchFound: TFilenameCaseMatch): string; $[SysUtils.pas
功能 分情况返回文件名的完整表示
说明 type TFilenameCaseMatch = (mkNone, mkExactMatch, mkSingleMatch, mkAmbiguous);
参考 function Windows.GetFullPathName;function SysUtils.SameFileName;function SysUtils.FindFirst
例子
///////Begin ExpandFileNameCase
procedure TForm1.Button1Click(Sender: TObject);
var
vFilenameCaseMatch: TFilenameCaseMatch;
begin
Edit1.Text := ExpandFileNameCase(Edit2.Text, vFilenameCaseMatch);
SpinEdit1.Value := Ord(vFilenameCaseMatch);
end;
///////End ExpandFileNameCase
━━━━━━━━━━━━━━━━━━━━━
首部 function ExpandUNCFileName(const FileName: string): string; $[SysUtils.pas
功能 返回LINUX文件名的完整表示
说明 ExpandUNCFileName('C:/')='C:\'
参考 function SysUtils.ExpandFileName
例子 Edit1.Text := ExpandUNCFileName(Edit2.Text);//......