日期:2014-05-20  浏览次数:20809 次

2005 下读取文件路径的问题
using   (StreamReader   sr   =   new   StreamReader(System.Web.HttpContext.Current.Request.MapPath(templatePath),   System.Text.Encoding.GetEncoding( "gb2312 ")))
                {
                        HTMLContent   =   sr.ReadToEnd();
                        sr.Close();
                }

---------------
我的   string   templatePath   =   "/html/text.htm ";

这句在2003下运行正常,在2005下就提示错误:未能映射路径“/html/text.htm”。

这是怎么回事啊,我没权限?这是在本地啊,又是管理员登陆的。
谢谢了

------解决方案--------------------
Web 程序?
使用 Server.MapPath



------解决方案--------------------
是在什么环境下运行的?如果是启动的.NET,他应该是找的默认.NET环境的路径,而不是你建立的站点的路径,你用绝对路径试试应该就可以了~~~~~~~~~~
------解决方案--------------------
"~/html/text.htm ";
试下
------解决方案--------------------

Url = "~/html/text.htm ";
this.Server.MapPath(url)
用这个映射
------解决方案--------------------
用绝对路径
------解决方案--------------------
最简单的方法就是用绝对路径,但这不是解决问题的本质。
为什么在vs2005和2003会有区别呢?
原因是2005默认的web工程为 "Web Site "而非2003的 "Web Application ",在2005中有很多地方是不能用以前的代码的,比如web也面中的事件绑定,在2005中是不需要的。
以Web Site创建的Web站点的Server.MapPath指向的是dll的路径。
要想解决你的问题,下载一个2005的补丁。
http://www.microsoft.com/downloads/thankyou.aspx?familyId=8B05EE00-9554-4733-8725-3CA89DD9BFCA&displayLang=en

补丁名称:
Microsoft Visual Studio 2005 - Update to Support Web Application Projects
这样你再创建一个Web Application的项目
添加你的代码就可以了
------解决方案--------------------

------解决方案--------------------
string templatePath = @ "/html/text.htm ";