Розбір URL-адреси в масив

Мені потрібно проаналізувати URL-адресу в масив, і він мав деякі труднощі, з'ясувавши, як правильно це зробити. Це трохи складніше.

Тож мій URL буде таким:

http://sharepoint/web-name/libraryname/sub-folder1/subfolder2/subfolder3/documentname

І результати повинні бути такими

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

Я був би вдячний за будь-які вказівки.

1

4 Відповіді

Це працює для мене:

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

6
додано
Це фантастично, спасибі за приклад.
додано Автор PixelMuse, джерело

Якщо ви використовуєте клас Uri , він забезпечує Сегменти , яка надає вам компоненти шляху як масив рядка

2
додано

Використовуйте System.Uri , щоб розділити Uri. Тоді ви можете використовувати String.Split на шляху.

1
додано

Використовуйте клас Uri .

1
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug