从C#中获取url的文件名

时间:2011-12-14 20:36:00

标签: c# .net

目前我们有一个解决方案,使用此

从URL中获取文件名
currentFile = Path.GetFileNameWithoutExtension(url);

我们发现,如果附加的查询字符串包含引号等字符,则返回时路径中存在非法字符错误。

例如,如果网址是

http:\\myurl.com\mypage.aspx?utm_content=This+Is+"Broken"

然后它将无法获取文件名。获得“mypage”是否有更好,更清洁的方式?

3 个答案:

答案 0 :(得分:15)

使用此:Uri.AbsolutePath

Request.Url.AbsolutePath

答案 1 :(得分:3)

我会找到?,如果它存在,则删除字符串的其余部分,然后将其用于GetFileNameWithoutExtension。

例如:

        string url;
        int index;

        index = url.IndexOf("?");
        if (index != -1)
        {
            url = url.Substring(0, index);
        }
        currentFile = Path.GetFileNameWithoutExtension(url);

答案 2 :(得分:0)

使用HttpContext.Current.Request.PhysicalPath而不是完整的URL作为Path.GetFileNameWithoutExtension方法的参数。

希望这有帮助,