【问题标题】:Parsing a URL into an array将 URL 解析为数组
【发布时间】:2011-10-28 01:11:07
【问题描述】:

我需要将一个 URL 解析为一个数组,并且在弄清楚如何正确执行此操作时遇到了一些困难。有点复杂。

所以我的网址应该是这样的:

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

结果应该是这样的

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

如有任何指导,我将不胜感激。

【问题讨论】:

    标签: c# arrays url


    【解决方案1】:

    这对我有用:

    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],
    };
    

    我得到这个结果:

    【讨论】:

      【解决方案2】:

      如果您使用 Uri 类,它会提供一个 Segments 属性,它将路径的组件作为字符串数组提供给您

      【讨论】:

        【解决方案3】:

        使用System.Uri 拆分Uri。然后你可以在路径上使用String.Split

        【讨论】:

          【解决方案4】:

          使用Uri 类。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-07-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-31
            相关资源
            最近更新 更多