C#中的绝对路径和相对路径的求法
2016-12-15 22:36
183 查看
最近被绝对路劲和相对路径的问题困扰,谈一谈我的解决方法。
平时我们在xml中配置一个路劲的时候,有时候写相对路径比较方便,因为这样移植到其他电脑之后,就无需做任何更改,但是在xml中写的相对路径有时候会是IIS的路径,比如我们配置的Webservice服务用IIS发布。
发话不多说,上例子:
列子1:
求P2相对于P1的的相对路径,
先手动来,P1从后往前数:H->G->F->E->D->C->B然后在拼接在P2上,结论应该是:
有没有一种简便的方法呢?有
请看:
例子2:
P4是相对路径,求P4相对于P3的绝对路径?
注意:绝对路径Uri对象取路径用LocalPath,相对路径的Uri对象取相对路径用OriginalString
这样我们在xml配置中填写复杂的相对路径时,再也不用担心我们的相对路径是相对的程序启动目录还是IIS得目录了。直接读取出相对路径,然后用Uri转换。之前我使用过System.IO.Path类进行各种拼接,最终以失败而告终。
以上为个人经验总结!
平时我们在xml中配置一个路劲的时候,有时候写相对路径比较方便,因为这样移植到其他电脑之后,就无需做任何更改,但是在xml中写的相对路径有时候会是IIS的路径,比如我们配置的Webservice服务用IIS发布。
发话不多说,上例子:
列子1:
string p1 = @"C:\A\B\C\D\E\F\G\H\"; string p2 = @"C:\A\B\M\N\";
求P2相对于P1的的相对路径,
先手动来,P1从后往前数:H->G->F->E->D->C->B然后在拼接在P2上,结论应该是:
string relativePath="..\\..\\..\\..\\..\\..\\M\\N";
有没有一种简便的方法呢?有
请看:
class Program
{
static void Main(string[] args)
{
string p1 = @"C:\A\B\C\D\E\F\G\H\"; string p2 = @"C:\A\B\M\N\";
Uri u1 = new Uri(p1, UriKind.Absolute);
Uri u2 = new Uri(p2, UriKind.Absolute);
Uri u3 = u1.MakeRelativeUri(u2);//u2相对于u1的uri
Console.WriteLine(u3.OriginalString);
Console.Read();
}
}
例子2:
string p3 = @"C:\A\B\C\D\E\F\G\H\"; string p4 = "..\\..\\..\\test.txt";
P4是相对路径,求P4相对于P3的绝对路径?
string p3 = @"C:\A\B\C\D\E\F\G\H\"; string p4 = "..\\..\\..\\X\\Y\\Z\\test.txt"; Uri uri_p3 = new Uri(p3, UriKind.Absolute); Uri uri_P4 = new Uri(p4, UriKind.Relative); Uri uri_result = new Uri(uri_p3, uri_P4); Console.WriteLine("p4相对于P3的绝对路径是:"+uri_result.LocalPath); Console.Read();
注意:绝对路径Uri对象取路径用LocalPath,相对路径的Uri对象取相对路径用OriginalString
这样我们在xml配置中填写复杂的相对路径时,再也不用担心我们的相对路径是相对的程序启动目录还是IIS得目录了。直接读取出相对路径,然后用Uri转换。之前我使用过System.IO.Path类进行各种拼接,最终以失败而告终。
以上为个人经验总结!
相关文章推荐
- asp.net(C#)服务器绝对路径与URL相对路径互转
- asp.net(C#)服务器绝对路径转换成URL相对路径[修改]
- C# ,asp.net 获取当前,相对,绝对路径
- C# ,asp.net 获取当前,相对,绝对路径
- C#绝对路径和相对路径的相互转换
- asp.net(C#)服务器绝对路径转换成URL相对路径[修改] (转)
- C# URL中的http链接进行分析,将相对路径转换为绝对路径 源代码
- C#中绝对路径转相对路径
- c#中绝对路径和相对路径
- C# 将绝对路径转换为相对路径
- C#中相对路径转绝对路径
- C#获取文件物理相对绝对路径目录的N种方法
- C# 中相对路径、绝对路径的问题
- C# ,asp.net 获取当前,相对,绝对路径
- C# url 路径转换 相对路径 转换为 绝对路径
- C# 中相对路径、绝对路径的问题
- C# ,asp.net 获取当前,相对,绝对路径
- C# ,asp.net 获取当前,相对,绝对路径(转)
- C#相对路径转绝对路径,绝对路径转相对路径
- c# winform 绝对路径与相对路径