2010-05-06 166 views

回答

8

在SysUtils单元中找到的最后一个反斜杠ExtractFileName后面可以得到任何结果。

25

尝试使用ExtractFileName函数,如果你的路径没有用反斜线结束,这个函数只适用于你的例子,所以你可以使用ExcludeTrailingPathDelimiter函数去除最后的反斜杠。

看到这个样本

program ProjectExtractPathDemo; 

{$APPTYPE CONSOLE} 

uses 
    SysUtils; 

var 
    Path : string ; 
begin 
    Path:='C:\Program Files\Borland'; 
    Writeln(ExtractFileName(Path));//return Borland 

    Path:='C:\Program Files\Borland\'; 
    Writeln(ExtractFileName(Path));//return '' 

    Path:='C:\Program Files\Borland\'; 
    Writeln(ExtractFileName(ExcludeTrailingPathDelimiter(Path)));//return Borland 


    Readln; 
end. 

检查此链接了解更多信息

Path Manipulation Routines

+1

我永远不知道ExtractFileName将在一个目录上工作。 完美。 谢谢。 – philO 2010-05-06 17:49:56

+0

+1我会尝试对文件夹使用ExtractFilePath,对文件使用ExtractFileName。 – 2011-12-14 20:28:11

0

直接解析该字符串,然后返回 “Borland的”,你可以这样做:

uses SysUtils; 

Delete(Path, 1, LastDelimiter('\', Path)); 
相关问题