2011-10-28 6 views
1

URLを解析して配列にする必要があり、正しく処理する方法がわかりませんでした。それは少し複雑です。URLを配列に解析する

だから私のURLは、このようなものになるだろう:

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

そして結果は、私はどんな指導をお願い申し上げますので

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

ようにする必要があります。

答えて

6

として、それはあなたのパスのコンポーネントを与えるSegmentsプロパティが用意されています

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

+1

例のおかげで素晴らしいです。 – PixelMuse

1

System.Uriを使用してUriを分割します。その後、パス上でString.Splitを使用することができます。

1

Uriクラスを使用してください。

2

あなたがUriクラスを使用する場合、これは私の作品String配列