2

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

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");

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

4

2 回答 2

3

我找到了解决方案。

这是

Console.WriteLine(Uri.UnescapeDataString(relativeUri.ToString()));
于 2012-07-05T10:06:27.583 回答
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\");

于 2012-07-05T10:10:09.317 回答