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

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)
}
时间: 2024-10-10 15:24:45

【转】相对路径和绝对路径的转换的相关文章

物理路径,虚拟路径,物理路径与虚拟路径转换,文件下载方法

1 什么是物理路径?什么是虚拟路径?(1) 例子:  用IIS举个例子:     WEB服务目录是d:\路径     那么用HTTP访问网站根目录的时候,其实访问的是d:\路径,那么其中虚拟路径就是\(根),物理路径就是d:\路径  (2) 我自己的理解:绝对路径一般都是带有磁盘完成路径, 而虚拟路径一般不带有磁盘 2 程序中虚拟路径和物理路径的转化 #region 物理路径和相对路径的转换        //本地路径转换成URL相对路径          private string urlc

C# .Net实现URL绝对路径和相对路径之间互相转换

网站制作开发中,URL的绝对路径和相对路径之间互相转换,是经常需要用到的.以下是在C#.Net下一种实现二者互相转化的方法: [DllImport("shlwapi.dll", CharSet = CharSet.Auto)]        public static extern bool PathRelativePathTo(               [Out] StringBuilder pszPath,               string pszFrom,      

关于相对路径和绝对路径

相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径.因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对. 绝对路径:以Web 站点根目录为参考基础的目录路径.之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的. 其实绝对路径与相对路径的不同处,只在于描述目录路径时,所采用的参考点不同.由于对网站上所有文件而言,根目录这个参考点对所有文件都是一样的,因此,运用以根目录为参考点的路径描述方式才会被称之为绝对路径 二.路径特殊符号   -

Asp.Net Core Web相对路径、绝对路径整理

一.相对路径 1.关于Asp.Net Core中的相对路径主要包括两个部分:一.Web根目录,即当前网站的目录为基础:二.内容目录wwwroot文件夹,对于静态文件都放在这个目录. 2.获取控制器,Action的路径 对于控制器.视图的链接生成,主要通过视图上下文.控制器上下文的Url对象 Url对象实现了IUrlHelper接口,主要功能是获取网站的相对目录,也可以将'~'发号开头的转换成相对目录. // // 摘要: // Defines the contract for the helpe

物理路径转网络路径

/// <summary> /// 物理路径转网络路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public string urlconvertor(string path) { string tmpRootDir = HttpContext.Current.Server.MapPath(System.Web.Ht

eclipse部署tomcat修改项目访问路径(虚拟路径)

原文参考: http://www.educity.cn/wenda/147993.html http://blog.163.com/java_zf/blog/static/19926038420129240314546/ tomcat部署web项目(eclipse自动部署项目到tomcat,访问URL中不包含部署名) 最近项目中需要把项目部署到tomcat中,并且访问路径中不包含不署名,且想实现Eclipse中的自动部署,扒了好久资料,最终实现了自己的需求,呵呵,如下: 1. 把项目contex

绝对路径和相对路径

HTML初学者会经常遇到这样一个问题,如何正确引用一个文件. 比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个网页中插入一张图片? 如果你在引用文件时(如加入超链接,或者插入图片等),使用了错误的文件路径,就会导致引用失效(无法浏览链接文件,或无法显示插入的图片等). 为了避免这些错误,正确地引用文件,我们需要学习一下HTML路径. 在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径 1.绝对路径:是从盘符

网站中图片的相对路径与绝对路径

1.相对路径 网站中加载图片所用到的相对路径,相对路径是以网页所在位置为参考的. ../代表上一级目录 src="../../photo/1.png"; src="images/1.jpg"; 2.绝对路径

浅谈 qmake 之 shadow build(就是将源码路径和构建路径分开)

shadow build shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁. 这不是qmake独创的东西,cmake中早就使用这个东西了   cmake qmake 备注 in-source cmake . qmake project.pro 在源码路径下执行 out-of-source(shadow-build) mkdir build cd buildcmake ../project m

[原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------