使用System.Uri创建相对路径

时间:2012-07-05 09:59:17

标签: c#

我正在使用以下代码将绝对文件系统路径转换为相对路径。

public static void Main(string[] args)
{
    System.Uri uri1 = new Uri(@"C:\Users\301591\Downloads\My Pics\abcd.jpg", true);
    System.Uri uri2 = new Uri(@"C:\Users\301591\", true);
    Uri relativeUri = uri2.MakeRelativeUri(uri1);
    Console.WriteLine(relativeUri.ToString());
}

我得到的结果是/ Downloads / My Pics / abcd.jpg

但是编译器正在抛出警告,我正在使用的构造函数被标记为过时。

Uri testUri=new Uri("string path","flag to remove escape sequences");

是否有其他方法可以在结果中显示转义序列来创建相对路径?

2 个答案:

答案 0 :(得分:3)

我找到了解决方案。

Console.WriteLine(Uri.UnescapeDataString(relativeUri.ToString()));

答案 1 :(得分:1)

根据MSDN,Uri.MakeRelative方法已过时:http://msdn.microsoft.com/en-us/library/system.uri.makerelative.aspx

所以Urii.MakeRelativeUri不能通过过时的警告http://msdn.microsoft.com/en-us/library/system.uri.makerelativeuri

所以请继续使用http://msdn.microsoft.com/en-us/library/system.uri.makerelativeuri与Cosntructor new Uri(@“C:\ Users \ 301591 \”);