Request.MapPath和Server.MapPath的区别

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)如何使用这两个方法时指定的目录不存在,那么就会报错。


1.Server.MapPath ("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\

2.Server.MapPath ("./") 表示所在页面的当前目录

注:等价于Server.MapPath ("") 返回 Server.MapPath ("")所在页面的物理文件路径

3.Server.MapPath ("../")表示上一级目录

4.Server.MapPath ("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置

如:C:\Inetpub\wwwroot\Example\ 注:等效于Server.MapPath ("~")。




https://www.cnblogs.com/wang7/articles/2661844.html
https://www.cnblogs.com/tianguook/archive/2010/10/15/1852013.html
posted @ 2021-10-19 14:44  BloggerSb  阅读(97)  评论(0编辑  收藏  举报