zoukankan      html  css  js  c++  java
  • Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径

    取文件名

    ExtractFileName(FileName);

    取文件扩展名:

    ExtractFileExt(filename);

    取文件名,不带扩展名:

    方法一:

    1.  
      Function ExtractFileNameNoExt(FileString: String): String;
    2.  
      Var
    3.  
      FileWithExtString: String;
    4.  
      FileExtString: String;
    5.  
      LenExt: Integer;
    6.  
      LenNameWithExt: Integer;
    7.  
      Begin
    8.  
      FileWithExtString := ExtractFileName(FileString);
    9.  
      LenNameWithExt := Length(FileWithExtString); FileExtString := ExtractFileExt(FileString); LenExt := Length(FileExtString);
    10.  
      If LenExt = 0 Then
    11.  
      Begin
    12.  
      Result := FileWithExtString;
    13.  
      End
    14.  
      Else
    15.  
      Begin
    16.  
      Result := Copy(FileWithExtString,1,(LenNameWithExt-LenExt));
    17.  
      End;
    18.  
      End;

    方法二:

    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'):返回TestRelativePath
    SysUtils.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" 

  • 相关阅读:
    Quartz定时调度CronTrigger时间配置格式说明与实例
    JAVA中堆和栈的区别
    s:iterator循环输出数字
    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
    FilenameFilter总结
    Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
    Java并发教程(Oracle官方资料)
    做考试系统用到的关于onbeforeunload一些兼容性问题
    Java集合类ArrayList循环中删除特定元素
    Log4j写入数据库详解
  • 原文地址:https://www.cnblogs.com/yumalei/p/10154589.html
Copyright © 2011-2022 走看看