Delphi学习笔记六——文件路径相关的字符串操作

本文介绍了使用Delphi进行文件路径的各种操作方法,包括提取文件名、路径、逻辑盘、文件扩展名等,并展示了如何进行路径格式转换、去除路径分隔符、更改文件扩展名和路径等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[delphi]  view plain copy
  1. uses  
  2.   HTTPApp, Masks;  
  3.   
  4. procedure TForm1.Button1Click(Sender: TObject);  
  5. var  
  6.   ss,s: string;  
  7. begin  
  8.   //先提取一个文件名的字符串  
  9.   ss := Application.ExeName;  
  10.   ShowMessage(ss); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects\Project1.exe  
  11.   
  12.   //路径  
  13.   s := ExtractFilePath(ss);  
  14.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects\  
  15.   
  16.   //所在文件夹  
  17.   s := ExtractFileDir(ss);  
  18.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects  
  19.   
  20.   //所在逻辑盘  
  21.   s := ExtractFileDrive(ss);  
  22.   ShowMessage(s); //C:  
  23.   
  24.   //文件名  
  25.   s := ExtractFileName(ss);  
  26.   ShowMessage(s); //Project1.exe  
  27.   
  28.   //文件扩展名  
  29.   s := ExtractFileExt(ss);  
  30.   ShowMessage(s); //.exe  
  31.   
  32.   //相对路径  
  33.   s := ExtractRelativePath('C:\Documents and Settings\wy\My Documents\',ss);  
  34.   ShowMessage(s); //RAD Studio\Projects\Project1.exe  
  35.   
  36.   //dos下的短文件名  
  37.   s := ExtractShortPathName(ss);  
  38.   ShowMessage(s); //C:\DOCUME~1\wy\MYDOCU~1\RADSTU~1\Projects\Project1.exe  
  39.   
  40.   //转换到Unix路径格式, 需要 uses HTTPApp  
  41.   s := DosPathToUnixPath(ss);  
  42.   ShowMessage(s); //C:/Documents and Settings/wy/My Documents/RAD Studio/Projects/Project1.exe  
  43.   
  44.   //转Unix路径格式为Window格式, 是 DosPathToUnixPath 的逆操作  
  45.   s := ExpandUNCFileName(DosPathToUnixPath(ss));  
  46.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects\Project1.exe  
  47.   
  48.   //去掉结尾的路径分隔符  
  49.   s := ExcludeTrailingPathDelimiter(ExtractFilePath(ss));  
  50.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects  
  51.   
  52.   //去掉结尾的路径分隔符, 只是调用:ExcludeTrailingPathDelimiter  
  53.   s := ExcludeTrailingBackslash(ExtractFilePath(ss));  
  54.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects  
  55.   
  56.   //更换扩展名, 并不修改文件, 只是替换字符串:  
  57.   s := ChangeFileExt(ss,'.bak');  
  58.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects\Project1.bak  
  59.   
  60.   //更换文件路径:  
  61.   s := ChangeFilePath(ss,'c:\temp');  
  62.   ShowMessage(s); //c:\temp\Project1.exe  
  63.   
  64.   //判断第几个字符是否是路径分隔符:  
  65.   IsPathDelimiter(ss,3); //返回 True  
  66.   
  67.   //判断后缀名是不是 exe; 需要 uses Masks  
  68.   MatchesMask(ss,'*.exe'); //返回 True  
  69. end;  
  70. --------------------------------------------------------------------------------  
  71.   
  72. //分解 ProcessPath (需要 uses FileCtrl)  
  73. var  
  74.   s,p,f: string;  
  75.   d: Char;  
  76. begin  
  77.   s := ParamStr(0);  
  78.   ShowMessage(s); //C:\Documents and Settings\wy\My Documents\RAD Studio\Projects\Project1.exe  
  79.   ProcessPath(s,d,p,f);  
  80.   ShowMessage(d); //C  
  81.   ShowMessage(p); //\Documents and Settings\wy\My Documents\RAD Studio\Projects  
  82.   ShowMessage(f); //Project1.exe  
  83. end;  
  84. --------------------------------------------------------------------------------  
  85.   
  86. //压缩显示 MinimizeName (需要 uses FileCtrl)  
  87. var  
  88.   s: string;  
  89. begin  
  90.   s := ParamStr(0);  
  91.   s := MinimizeName(s,Self.Canvas,100);  
  92.   ShowMessage(s); //C:\...\Project1.exe  
  93. end;  
万老师博客上转载的,很不错的整理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值