首页 > 编程 > .NET > 正文

ASP.NET编程获取网站根目录方法小结

2024-07-10 13:29:38
字体:
来源:转载
供稿:网友

这篇文章主要介绍了ASP.NET编程获取网站根目录方法,较为详细的分析了ASP.NET针对网站目录及物理路径的操作技巧,并给出了实例予以总结,需要的朋友可以参考下

本文实例讲述了ASP.NET编程获取网站根目录方法。分享给大家供大家参考,具体如下:

获取网站根目录的方法有几种如:

Server.MapPath(Request.ServerVariables["PATH_INFO"])

Server.MapPath("/")

Server.MapPath("")//当前代码文件所在的目录路劲

Server.MapPath(".")

Server.MapPath("../")

Server.MapPath("..")

Page.Request.ApplicationPath

以上的代码在http://localhost/EnglishClub/manage/WebForm1.aspx页面

运行结果:

C:/Inetpub/wwwroot/EnglishClub/manage/WebForm1.aspx

C:/Inetpub/wwwroot/

C:/Inetpub/wwwroot/EnglishClub/manage

C:/Inetpub/wwwroot/EnglishClub/manage

C:/Inetpub/wwwroot/EnglishClub/

C:/Inetpub/wwwroot/EnglishClub

以上的方法可以在.aspx中访问,但是如果你在。cs文件就不能用。

HttpContext.Current.Server.MapPath();

System.Web.HttpContext.Current.Request.PhysicalApplicationPath

在.cs文件中可以用。但是HttpContext.Current.Server.MapPath();这个获取的是文件的路径而不是根目录。

只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath 这个才是获取的根目录,在写获取数据库路径是应该用这个,其他的都有问题。

System.Web.HttpContext.Current.Request.PhysicalApplicationPath

和Server.MapPath("~/")效果是一样的。

Server.MapPath("~/");//无论代码所在的文件的、页面路劲是什么,永远返回 C:/Inetpub/wwwroot/EnglishClub/(就是当前程序运行的所在根目录)

如果存储 附件的路劲 进数据库的话,不应该把绝对路劲存进去。应该只存储 文件名部分。例如:

/uploads/abc.txt

当需要浏览文件的时候,在在读取出来的路径:(即/uploads/abc.txt),前面+网站的路劲:例如:

http://abc.com+"/uploads/abc.txt"

补充:

ASP.NET中获取网站根目录和物理路径完整实例:

 

 
  1. /// <summary> 
  2. /// 取得网站的根目录的URL 
  3. /// </summary> 
  4. /// <returns></returns> 
  5. public static string GetRootURI() 
  6. string AppPath = ""
  7. HttpContext HttpCurrent = HttpContext.Current; 
  8. HttpRequest Req; 
  9. if (HttpCurrent != null
  10. Req = HttpCurrent.Request; 
  11. string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority); 
  12. if (Req.ApplicationPath == null || Req.ApplicationPath == "/"
  13. //直接安装在 Web 站点  
  14. AppPath = UrlAuthority; 
  15. else 
  16. //安装在虚拟子目录下  
  17. AppPath = UrlAuthority + Req.ApplicationPath; 
  18. return AppPath; 
  19. /// <summary> 
  20. /// 取得网站的根目录的URL 
  21. /// </summary> 
  22. /// <param name="Req"></param> 
  23. /// <returns></returns> 
  24. public static string GetRootURI(HttpRequest Req) 
  25. string AppPath = ""
  26. if(Req != null
  27. string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority); 
  28. if (Req.ApplicationPath == null || Req.ApplicationPath == "/"
  29. //直接安装在 Web 站点  
  30. AppPath = UrlAuthority; 
  31. else 
  32. //安装在虚拟子目录下  
  33. AppPath = UrlAuthority + Req.ApplicationPath; 
  34. return AppPath; 
  35. /// <summary> 
  36. /// 取得网站根目录的物理路径 
  37. /// </summary> 
  38. /// <returns></returns> 
  39. public static string GetRootPath() 
  40. string AppPath = ""
  41. HttpContext HttpCurrent = HttpContext.Current; 
  42. if (HttpCurrent != null
  43. AppPath = HttpCurrent.Server.MapPath("~"); 
  44. else 
  45. AppPath = AppDomain.CurrentDomain.BaseDirectory; 
  46. if (Regex.Match(AppPath, @"//$", RegexOptions.Compiled).Success) 
  47. AppPath = AppPath.Substring(0, AppPath.Length - 1); 
  48. return AppPath; 

希望本文所述对大家asp.net程序设计有所帮助。


注:相关教程知识阅读请移步到ASP.NET教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表