获取servername + foldername(没有脚本名称)

时间:2013-01-18 03:10:12

标签: asp.net

如何获取servername + foldername而不包含脚本名称?

string filePath = Request.QueryString.Get("filepath");

string serverPath = Request.ServerVariables["SERVER_NAME"] + "/";
string fullUrl = "http://" + serverPath + filePath;
Response.Write(fullUrl);

上面的代码缺少文件夹名称。

2 个答案:

答案 0 :(得分:0)

你不能那么做,因为HTTP对于文件夹和文件是“盲目的”。

您可能熟悉http://www.acme.com/products/view.asp等网址,但完全有效的网址也可能是http://www.acme.com/products/view,因此您无法区分文件夹和文件名。

你能做什么,只要:

  1. 你知道你的应用程序并且知道它只运行文件(而不是某些运行某些逻辑代码的路由机制,例如在MVC中)
  2. 每个文件都包含一个扩展名
  3. 是自己解析路径字符串,并在路径末尾查找 file.ext 模式。

答案 1 :(得分:0)

This page演示了HttpRequest的各个部分是如何分解的。您可以使用Request.FilePath并删除最后一段,如下所示:

string directory = Request.FilePath.Remove(Request.FilePath.LastIndexOf('/'));