确定Url是vb的绝对值还是相对值

时间:2010-02-04 16:11:43

标签: .net vb.net

我试图在vb中确定URL是绝对的还是相对的。我敢肯定有一些库可以做到这一点,但我不确定哪个。基本上我需要能够分析诸如'relative / path'和'http://www.absolutepath.com/subpage'之类的字符串,并确定它是绝对的还是相对的。提前谢谢。

-Ben

3 个答案:

答案 0 :(得分:18)

您可以使用Uri.IsWellFormedUriString方法,该方法以UriKind为参数,指定您是在检查绝对值还是相对值。

bool IsAbsoluteUrl(string url) {
    if (!Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute)) {
        throw new ArgumentException("URL was in an invalid format", "url");
    }
    return Uri.IsWellFormedUriString(url, UriKind.Absolute);
}

IsAbsoluteUrl("http://www.absolutepath.com/subpage"); // true
IsAbsoluteUrl("/subpage"); // false
IsAbsoluteUrl("subpage"); // false
IsAbsoluteUrl("http://www.absolutepath.com"); // true

答案 1 :(得分:4)

Determine if Absolute or Relative URL更简单answer

bool IsAbsoluteUrl(string url) 
        { 
            Uri result; 
            return Uri.TryCreate(url, UriKind.Absolute, out result);                 
        } 

答案 2 :(得分:1)

试试这个:

Uri uri = new Uri("http://www.absolutepath.com/subpage");
Console.WriteLine(uri.IsAbsoluteUri);

修改:如果您不确定地址是否格式正确,则应使用:

static bool IsAbsolute(string address, UriKind kind)
{
    Uri uri = null;
    return Uri.TryCreate(address, kind, out uri) ? 
        uri.IsAbsoluteUri : false;
}