概述
最近做excell导出时,用的是模板的方法。其中有个就是要获取模板的位置。
我先是用
string path = HttpContext.Current.Server.MapPath("~") + @"test.xls";
这个获取到网站根目录下的test.xls文件,这个在VS2010里面直接运行测试和部署都是没有问题,但是如果部署在网站的虚拟目录下。就会报找不到test.xls的错误。因为这个模板操作是需要实际的物理路径,最后用以下代码解决问题。
/// <summary>
/// 应用程序路径 如:/WWW/ 或 /
/// </summary>
public static string ApplicationPath
{
get
{
string path = HttpContext.Current.Request.ApplicationPath.ToString();
if (path.Trim() != "/") // 判断路径是否为“/”
{
path += "/";
}
return path;
}
}
string path = HttpContext.Current.Server.MapPath(ApplicationPath) + @"test.xls";
------------------------------- 以下百度参考--------------------------
//返回与Web服务器上的指定虚拟路径相对应的物理文件路径。
string Server.MapPath(string path)
测试,以下的代码在http://localhost/EnglishClub/manage/WebForm1.aspx页面
Server.MapPath(Request.ServerVariables["PATH_INFO"])
Server.MapPath("/")
Server.MapPath("")
Server.MapPath(".")
Server.MapPath("../")
Server.MapPath("..")
Page.Request.ApplicationPath
(HttpContext.Current.Request.PhysicalApplicationPath);
运行结果:
C:InetpubwwwrootEnglishClubmanageWebForm1.aspx
C:Inetpubwwwroot
C:InetpubwwwrootEnglishClubmanage
C:InetpubwwwrootEnglishClubmanage
C:InetpubwwwrootEnglishClub
C:InetpubwwwrootEnglishClub
C:InetpubwwwrootEnglishClub
由以上可以知道:
要想获得要是建立的虚拟目录的网站的根目录可以这样使用:
Server.MapPath(Page.Request.ApplicationPath)
.net高级学习群II Q群230160592 欢迎有基础的加入一起学习
最后
以上就是可靠自行车为你收集整理的获取网站虚拟目录下的物理路径的全部内容,希望文章能够帮你解决获取网站虚拟目录下的物理路径所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复