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 ";