Request.MapPath和Server.MapPath的区别

  测试了一上午,发现这两个方法并没有什么区别,HttpFileCollection实现多文件上传的例子 

在这个例子中我使用了下面的测试语句:

string path = Request.MapPath(@"~\files\"+fileName);//将指定的虚拟路径映射到物理路径
string serverpath = Server.MapPath(@".\files\" + fileName);//返回与web服务器上的指定虚拟路径相对应的物理路径
//上面两个返回一样: E:\VSProject\EFDemo\WebTest\files\信息搜集.xls

我们看到后面的注释就是vs显示的方法作用。

然后解释一下:

1,

/ 念 反斜杠,/ 是超文本协议的路径分隔符号,所有的网站在浏览器中显示的路径分隔都是以"/"表示.它一般代表虚拟路径.

\ 念 斜杠,在普通程序代码中则以"\"表示文件路径分隔符号.它一般指物理路径.

2,

(1)./ 表示在当前路径下, .\作用相同
(2)../表示在当前路径的上一级路径下.
如何当前网页直接在网站目录(你建立的asp.net项目)下,就不能使用它来得到外层的目录,
否则提示:无法使用前导 .. 在顶级目录上退出。因为它已经是顶级目录了。
当然如果是子目录下是可以使用的。 (3)~/表示当前网站的根目录下.(你建立的asp.net项目)
(4)我们得到的目录不能超出顶级网站的目录,只能是在网站下面的目录路径。
(5)如何使用这两个方法时指定的目录不存在,那么就会报错。


另外参考了:http://www.cnblogs.com/12go/archive/2011/10/12/2208565.html
posted @ 2012-08-29 12:17  金河  阅读(448)  评论(0编辑  收藏  举报