今天要写一段读写文件的程序,使用this.Server.MapPath(str),str是一路径字符串,如:http://localhost/web/index.html
,不料却出现“不是有效的虚拟路径”的错误,马上检查程序,感觉没有什么错误,于是乎网上搜,
找啊找,就是找不到解决方案。只有自己慢慢调试了;
先使用了一个根路径"/",居然换了一个错误:“未能映射路径”,就搜这个错误,这个还有相应的回答:
把"/"换成"~/",成功了。心窃喜。。。
于是先把str.ToLower(),然后str.Replace("http://","");接着str.SubString(str.IndexOf("/"));
最后str = "~"+str;
this.Server.MapPath(str);
成功。。。
代码如下:
1 str = str.ToLower();
2 if(str.IndexOf("http://") > -1)
3 {
4 str = str.Replace("http://","");
5 str = str.Substring(str.IndexOf("/"));
6 }
7 str = this.Server.MapPath("~"+str);
2 if(str.IndexOf("http://") > -1)
3 {
4 str = str.Replace("http://","");
5 str = str.Substring(str.IndexOf("/"));
6 }
7 str = this.Server.MapPath("~"+str);