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

Uri.MakeRelative メソッドは、MSDN に従って廃止されました: 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 に答える