Разбор URL в массив - PullRequest
       1

Разбор URL в массив

1 голос
/ 28 октября 2011

Мне нужно проанализировать URL-адрес в массиве, и у меня возникли некоторые трудности с выяснением, как это сделать правильно.Это немного сложно.

Так что мой URL будет выглядеть примерно так:

http://sharepoint/webname/libraryname/subfolder1/subfolder2/subfolder3/documentname

И результаты должны быть примерно такими:

array0 - http://sharepoint
array1 - webname
array2 - libraryname
array3 - subfolder1/subfolder2/subfolder3 
array4 - documentname

Буду признателен за любые указания.

Ответы [ 4 ]

6 голосов
/ 28 октября 2011

Это работает для меня:

var uri = new Uri(@"http://sharepoint/webname/libraryname/subfolder1/"
    + "subfolder2/subfolder3/documentname");

var segments =
    uri.Segments
        .Select(s => s.EndsWith("/") ? s.Substring(0, s.Length - 1) : s)
        .ToArray();

var array = new []
{
    String.Format("{0}://{1}", uri.Scheme, uri.Host),
    segments[1],
    segments[2],
    String.Join("/", segments.Skip(3).Take(segments.Length - 4)),
    segments[segments.Length - 1],
};

Я получаю этот результат:

Parsed Uri Array

2 голосов
/ 28 октября 2011

Если вы используете класс Uri , он предоставляет свойство Segments , которое дает вам компоненты пути в виде массива String

1 голос
/ 28 октября 2011

Используйте класс Uri .

1 голос
/ 28 октября 2011

Используйте System.Uri , чтобы разделить Uri. Тогда вы можете использовать String.Split на пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...