码迷,mamicode.com
首页 > 其他好文 > 详细

【转】相对路径和绝对路径的转换

时间:2016-10-30 11:39:38      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:use   util   absolute   max   normal   begin   驱动   fill   function   

unit xPath;  
  
interface  
  uses ShlwApi, Windows, SysUtils;  
  
/// <summary>  
/// 取绝对路径的函数。需要引用 ShlwApi.pas  
/// </summary>  
/// <param name="BasePath">参考路径</param>  
/// <param name="RelativePath">相对路径</param>  
/// <code>  
/// S := GetAbsolutePath(‘C:\Windows\System32‘, ‘..\DEMO.TXT‘)  
//  S 将得到 ‘C:\Windows\DEMO.TXT  
/// </code>  
function GetAbsolutePathEx(BasePath, RelativePath:string):string;  
  
  
/// <summary>  
/// 取得本身程序的路径  
/// </summary>  
function AppPath : string;  
function GetRelativePath(const Path, AFile: string): string;  
  
  
implementation  
function GetAbsolutePathEx(BasePath, RelativePath:string):string;  
var  
   Dest:array [0..MAX_PATH] of char;  
begin  
   FillChar(Dest,MAX_PATH+1,0);  
   PathCombine(Dest,PChar(BasePath), PChar(RelativePath));  
   Result:=string(Dest);  
end;  
  
function GetRelativePath(const Path, AFile: string): string;  
  function GetAttr(IsDir: Boolean): DWORD;  
  begin  
       if IsDir then  
         Result := FILE_ATTRIBUTE_DIRECTORY  
       else  
         Result := FILE_ATTRIBUTE_NORMAL;  
  end;  
var  
   p: array[0..MAX_PATH] of Char;  
begin  
   PathRelativePathTo(p, PChar(Path), GetAttr(False), PChar(AFile), GetAttr(True));  
   Result := StrPas(p);  
end;  

function AppPath : string;  
begin  
  Result := extractFilePath(Paramstr(0));  
end;  
end.  

{
ExpandFileName() 返回文件的全路径(含驱动器、路径) 
ExtractFileExt() 从文件名中抽取扩展名 
ExtractFileName() 从文件名中抽取不含路径的文件名 
ExtractFilePath() 从文件名中抽取路径名 
ExtractFileDir() 从文件名中抽取目录名 
ExtractFileDrive() 从文件名中抽取驱动器名 
ChangeFileExt() 改变文件的扩展名 
ExpandUNCFileName() 返回含有网络驱动器的文件全路径 
ExtractRelativePath() 从文件名中抽取相对路径信息 
ExtractShortPathName() 把文件名转化为DOS的8·3格式 
MatchesMask() 检查文件是否与指定的文件名格式匹配 
ExtractFilePath(FileName:String) 
该函数返回路径名,其结尾字符总是“\” 
 
ExtractFileDir(FileName:String) 
}

 

【转】相对路径和绝对路径的转换

标签:use   util   absolute   max   normal   begin   驱动   fill   function   

原文地址:http://www.cnblogs.com/Zory/p/6012623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!