Asp.Net中的MapPath目录问题
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lcring.blog.51cto.com/195827/33968 |
最近因为要用.Net连接Access数据库,在数据库路径上遇到了麻烦。
找了半天,没搞懂.Net中的目录问题。
在古老的asp中,Server.MapPath无比好用,使用Server.MapPath可以很方便的返回物理路径的上一层;而在.Net中,返回的是虚拟路径的上一层,郁闷。 比如我们localhost的物理目录是“c:\inetpub\wwwroot\”,我们把“D:\mywebsite\test”设置为web共享, 在“D:\mywebsite\test”下的文件夹“NewFolder1”中,有文件“webform1.aspx”。 运行以下代码: Response.Write(Server.MapPath("") + "<br>"); Response.Write(Server.MapPath("..") + "<br>"); Response.Write(Server.MapPath("../") + "<br>"); Response.Write(Server.MapPath("../../") + "<br>"); 输出: D:\mywebsite\test\NewFolder1 D:\mywebsite\test D:\mywebsite\test\ c:\inetpub\wwwroot\ 而在一个Asp文件“test.asp”中,有以下代码:
<% response.write Server.MapPath("..") + "<br>" response.write Server.MapPath("../") + "<br>" response.write Server.MapPath("../../") + "<br>" %> (需要说明的是,asp代码中response.write Server.MapPath("")会出现错误。) 输出: D:\mywebsite\test D:\mywebsite\test D:\mywebsite 正解。 所以,Asp.Net让人郁闷。 并且,不论Asp.Net还是Asp,用MapPath方法获得的物理路径,都与当前文件所处的目录有关,所以,在网站中处于不同目录深度的文件不能调用统一的方法获得access数据库的物理路径,实在是很郁闷的问题。
解决的办法,只好是将Access数据库的物理路径直接在配置文件中写好,这样可以不必使用MapPath方法,也不必受其限制。目前来看,虽然有点笨,但还是最好的方法。 本文出自 “李春锐的技术博客” 博客,请务必保留此出处http://lcring.blog.51cto.com/195827/33968 本文出自 51CTO.COM技术博客 |


lcring
博客统计信息
热门文章
最新评论
友情链接
