怎么网上对着个方法的说法都不一样呢????我今天测试了一下。
wwwroot\test\default.aspx   Server.MapPath 就在里面写。 Server.MapPath("/")   本机测试 显示未能映射路径
 Server.MapPath("/")   虚拟主机测试返回C:\Inetpub\wwwroot\  我看着好多帖子都大言不惭的写着C:\Inetpub\wwwroot  我还以为是我的问题呢 Server.MapPath("/ss") 本机测试 显示未能映射路径
 Server.MapPath("/ss") 虚拟主机测试返回C:\Inetpub\wwwroot\ss  Server.MapPath("~")  本机测试返回 C:\Inetpub\wwwroot
 Server.MapPath("~")  虚拟主机测试返回 C:\Inetpub\wwwroot\    为什么会有这个差别呢?Server.MapPath("~/")等效于 Server.MapPath("~") 表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 .注意这和  Server.MapPath("/") 是有区别的。我还有个小问题 在虚拟主机中数据库的文件夹是放在 C:\Inetpub\db 下的, 请问我怎么才能得到这个路径。。哪位大哥给个方法吧,小弟业余的啊。。   我通过  Server.MapPath("/") 得到  C:\Inetpub\wwwroot\    对这个字符串如何处理呢。。 才能得到 C:\Inetpub\db  我要的是一种通用的解决方法 ,就是说从一个虚拟主机移动到另外一个也不用改代码

解决方案 »

  1.   

    呵呵,首先恭喜楼主有研究精神第一种,估计是服务器上的IIS的网站默认根目录路径映射设置有关第二种,你都已经取得路径了,那可以用字符串的.SubString(0,"C:\Inetpub\wwwroot\" 字符串长度-"wwwroot\ "的长度);也就是把"wwwroot\ "去掉,然后,你想在后面加什么,自己看着办!左右,你用动态字符串的.Replace(@"wwwroot\","db ");替换相应字符也行
      

  2.   

    谢谢楼上的,我想找的是一种通用的方法,就是移植服务器的时候也不用改写代码自己写了一个。。        string a = Server.MapPath("/");
            string b= a.Substring(0,a.LastIndexOf("//"));
            string c = b.Substring(0,b.LastIndexOf("//"));这样c就取得路径了。。而且什么地方的访问都可以。。就是代码太长。。就没有个方法一下子就取出来吗。。 先不结贴,看看有没有别的建议。