Uri::MakeRelative Method (Uri^)
Determines the difference between two Uri instances.
Assembly: System (in System.dll)
public: [ObsoleteAttribute("The method has been deprecated. Please use MakeRelativeUri(Uri uri). http://go.microsoft.com/fwlink/?linkid=14202")] String^ MakeRelative( Uri^ toUri )
Parameters
- toUri
-
Type:
System::Uri^
The URI to compare to the current URI.
Return Value
Type: System::String^If the hostname and scheme of this URI instance and toUri are the same, then this method returns a String that represents a relative URI that, when appended to the current URI instance, yields the toUri parameter.
If the hostname or scheme is different, then this method returns a String that represents the toUri parameter.
| Exception | Condition |
|---|---|
| ArgumentNullException | toUri is null. |
| InvalidOperationException | This instance represents a relative URI, and this method is valid only for absolute URIs. |
The following table shows the URI instance, toUri, and the results of calling MakeRelative.
Current URI instance | toUri | Return value |
|---|---|---|
http://www.contoso.com/ | http://www.contoso.com/test/test.htm | test/test.htm |
http://www.contoso.com/test1/ | http://www.contoso.com/ | ../ |
http://www.contoso.com:8000/ | http://www.contoso.com/test/test.htm | http://www.contoso.com/test/test.htm |
http://username@www.contoso.com/ | http://www.contoso.com/test1/test1.txt | test1/test1.txt |
User information, if present in the URI, is ignored.
The following example creates 2 Uri instances. The difference in the path information is written to the console.
// Create a base Uri. Uri^ address1 = gcnew Uri( "http://www.contoso.com/" ); // Create a new Uri from a string. Uri^ address2 = gcnew Uri( "http://www.contoso.com/index.htm?date=today" ); // Determine the relative Uri. Console::WriteLine( "The difference is {0}", address1->MakeRelativeUri( address2 ) );
Available since 1.1