对于url,IO.Path.GetFileName的等效函数?

时间:2012-03-01 15:32:04

标签: .net url

在.NET 4.0中,对于url来说,IO.Path.GetFileName的等效函数是什么?

4 个答案:

答案 0 :(得分:14)

Uri课程是你的朋友。

  

提供统一资源标识符(URI)的对象表示,并可轻松访问URI的各个部分。

IsFile会尝试确定Uri是否确实指向某个文件。

使用Segements属性获取文件名(它将是最后一段)。

Uri uri = new Uri("http://example.com/title/index.htm");
var filename = uri.Segments[uri.Segments.Length - 1];
// filename == "index.htm"

答案 1 :(得分:2)

您可能会坚持创建Uri对象,或者如果您关心性能,请使用与此类似的东西:

    public class UriHelpers
    {
        public static string GetFileNameFromUrl(string url)
        {
            string lastSegment = url.Split('/').Last();

            return lastSegment.Substring(0, lastSegment.IndexOf('?') < 0 ? lastSegment.Length : lastSegment.IndexOf('?'));
        }
    }

答案 2 :(得分:0)

您可以使用Server.MapPath()映射虚拟路径中的物理路径。

此外,HTTPUtility中有许多方法可以帮助您映射各种不同类型的路径。

答案 3 :(得分:0)

有许多方法,主要描述here
基本上可以利用Uri类,如果需要,可以使用字符串标记。