Delphi 文件目录相关的操作函数
取文件名
取文件扩展名:
取文件名,不带扩展名: 方法一: ?
方法二: ? ChangeFileExt(ExtractFileName(Application.ExeName),‘‘) ? ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ? ? //delphi 获取文件所在路径 ExtractFileDrive?:返回完整文件名中的驱动器,如"C:"ExtractFilePath:返回完整文件名中的路径,最后带“/”,如"C:/test/"ExtractFileDir:返回完整文件名中的路径,最后不带“/”?,如"C:/test"ExtractFileName:返回完整文件名中的文件名称?(带扩展名),如"mytest.doc"ExtractFileExt?返回完整文件名中的文件扩展名(带.),如".doc"ExtractRelativePath?:?返回相对路径,定义如下:function?ExtractRelativePath(const?BaseName,?DestName:?string):?string;使用测试下如:SysUtils.ExtractRelativePath(‘C:/test‘,‘C:/Test/TestRelativePath‘):返回TestRelativePathSysUtils.ExtractRelativePath(‘C:/Test/TestRelativePath‘,‘C:/test‘):返回‘../TestRelativePath‘SysUtils.ExtractRelativePath(‘C:/Test/TestRelativePath/‘,‘C:/test‘):返回‘../../TestRelativePath‘ExtractShortPathName?:返回短文件名,即8+3,文件名长八位,扩展名为3号,为保持DOS系统兼容而存在?若想获取的文件名不带路径,可用:ChangeFileExt(TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename,‘‘);?函数将扩展名改掉即可.目前好象就这一种办法,谁还有更好的办法?请告知??另附其它地方的资料:?1、文件名函数? 文件名函数可以对文件的名称、所在子目录、驱动器和扩展名等进行操作。下表列出这些函数及其功能。?函数?说明?ExpandFileName()?返回文件的全路径(含驱动器、路径)?ExtractFileExt()?从文件名中抽取扩展名?ExtractFileName()?从文件名中抽取不含路径的文件名?ExtractFilePath()?从文件名中抽取路径名?ExtractFileDir()?从文件名中抽取目录名?ExtractFileDrive()?从文件名中抽取驱动器名?ChangeFileExt()?改变文件的扩展名?ExpandUNCFileName()?返回含有网络驱动器的文件全路径?ExtractRelativePath()?从文件名中抽取相对路径信息?ExtractShortPathName()?把文件名转化为DOS的8·3格式?MatchesMask()?检查文件是否与指定的文件名格式匹配ExtractFilePath(FileName:String)该函数返回路径名,其结尾字符总是“/”ExtractFileDir(FileName:String)该函数同样返回路径名,但不包括结尾的字符“/”,除非返回的路径是根目录。 下面就把这些函数作一一介绍:?⑴ExpandFileName()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExpandFileName(const?AnsiString?FileName);? 功能:返回文件的全路径(含驱动器、路径)? 参数:FileName:要处理的文件名? 例:ShowMessage(ExpandFileName(Application->ExeName));//显示你的程序文件名,如C:/MyBCB/Sample1.EXE?⑵ExtractFileExt()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractFileExt(const?AnsiString?FileName);? 功能:从文件名中抽取扩展名? 参数:FileName:要处理的文件名(全路径)? 例:ShowMessage(ExtractFileExt(Application->ExeName));//显示".exe"?⑶ExtractFileName()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractFileName(const?AnsiString?FileName);? 功能:从文件名中抽取不含路径的文件名? 参数:FileName:要处理的文件名? 例:ShowMessage(ExtractFileExt("c://Winnt//SOL.EXE"));//显示"SOL.EXE"?⑷ExtractFilePath()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractFilePath(const?AnsiString?FileName);? 功能:从文件名中抽取路径名? 参数:FileName:要处理的文件名? 例:ShowMessage(ExtractFilePath("Winnt//SOL.EXE"));//显示"Winnt/"?⑸ExtractFileDir()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractFileDir(const?AnsiString?FileName);? 功能:从文件名中抽取目录名(和上个函数不同,不包括最后的"/")? 参数:FileName:要处理的文件名? 例:ShowMessage(ExtractFileDir("Winnt//SOL.EXE"));//显示"Winnt",注意和上个函数的区别?⑹ExtractFileDrive()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractFileDrive(const?AnsiString?FileName);? 功能:从文件名中抽取驱动器名? 参数:FileName:要处理的文件名? 例:ShowMessage(ExtractFileDrive("c://Winnt//SOL.EXE"));//显示"c:"?⑺ChangeFileExt()? 原型:extern?PACKAGE?System::AnsiString?__fastcall?ChangeFileExt(const?System::AnsiString?FileName,?const?System::AnsiString?Extension);? 功能:更改文件名的扩展名,不是对真正的文件进行改名,只是对文件名这个字符串进行处理? 参数:FileName:要改名的文件名,Extension:新的扩展名? 例:ShowMessage(ChangeFileExt("c://Winnt//SOL.EXE",".OOO"));//显示"c:/winnt/SOL.OOO"?⑻ExpandUNCFileName()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExpandUNCFileName(const?AnsiString?FileName);? 功能:返回含有网络驱动器的文件全路径,格式为://机器名/共享名/文件名? 参数:FileName:要处理的文件名? 例:ShowMessage(ExpandUNCFileName("F://Winnt//SOL.EXE"));/*如果F:是映射的网络驱动器,则显示"⑼ExtractRelativePath()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractRelativePath(const?AnsiString?BaseName,?const?AnsiString?DestName);? 功能:从文件名中抽取相对路径信息,如"../sss/ss.asd"这种形式? 参数:BaseName:基准文件名;DestName:目标文件名? 例:ShowMessage(ExtractRelativePath("D://Source//c//1.123","D://Source//Asm//dz.asm"));/*显示"../asm/dz.asm"*/?⑽ExtractShortPathName()? 原型:extern?PACKAGE?AnsiString?__fastcall?ExtractShortPathName(const?AnsiString?FileName);? 功能:把文件名转换为DOS的8、3格式? 参数:FileName:要处理的文件名? 例:ShowMessage(ExtractShortPathName("E://Program?Files//Dual?Wheel?Mouse//4dmain.exe"));/*显示"E:/Progra~1/dualwh~1/4dmain.exe"*/?⑾MatchesMask()? 原型:extern?PACKAGE?bool?__fastcall?MatchesMask(const?AnsiString?Filename,?const?AnsiString?Mask);? 功能:检查文件是否与指定的文件名格式匹配? 参数:FileName:要处理的文件名;Mask:文件名格式,支持通配符? 例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//显示"true" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |