目前我们有一个解决方案,使用以下代码从URL中获取文件名:
currentFile = Path.GetFileNameWithoutExtension(url);
我们发现,如果查询字符串中包含引号等字符,会返回“路径中的非法字符”错误。
例如,如果URL为:
http:\\myurl.com\mypage.aspx?utm_content=This+Is+"Broken"
然后它就得不到文件名。有没有更好、更清晰的方法来获取“mypage”?
目前我们有一个解决方案,使用以下代码从URL中获取文件名:
currentFile = Path.GetFileNameWithoutExtension(url);
http:\\myurl.com\mypage.aspx?utm_content=This+Is+"Broken"
使用这个:Uri.AbsolutePath
Request.Url.AbsolutePath
string filename = Path.GetFileName(new Uri(myUrlString).AbsolutePath);
- jocull?
,如果存在,就去掉后面的部分,然后使用该字符串来调用GetFileNameWithoutExtension函数。 string url;
int index;
index = url.IndexOf("?");
if (index != -1)
{
url = url.Substring(0, index);
}
currentFile = Path.GetFileNameWithoutExtension(url);
使用HttpContext.Current.Request.PhysicalPath而不是完整的URL作为参数传递给Path.GetFileNameWithoutExtension方法。
希望这能有所帮助,