• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[网络收集]asp.net文件路径问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
如果有文件夹abc,和aaa.jpg文件
./abc/aaa.jpg
./abc\aaa.jpg
../abc/aaa.jpg
~/abc/aaa.jpg
/abc/aaa.jpg
http://localhost/abc/aaa.jpg
Server.MapPath("./abc/")+"aaa.jpg"
以及"//"和"\"含义!

/ 是超文本协议的路径分隔符号,所有的网站在浏览器中显示的路径分隔都是以"/"表示.它一般代表虚拟路径.
在普通程序代码中则以"\"表示文件路径分隔符号.它一般指物理路径.
./ 表示在当前路径下,
../表示在当前路径的上一级路径下.
~/表示当前网站的根目录下.
比如有网站路径如下
C:\Inetpub\wwwroot\test\
新闻路径如下
C:\Inetpub\wwwroot\test\news\
C:\Inetpub\wwwroot\test\news\2008\
C:\Inetpub\wwwroot\test\news\2008\info\

假设每个文件夹下面有个Default.aspx
以C:\Inetpub\wwwroot\test\news\2008\Default.apsx为例:
调试时显示路径为
http://localhost/test/news/2008/default.aspx 反斜杠都是虚拟路径分隔,它不会显示C:\Inetpub\wwwroot这节物理路径.
~/Default.aspx 指向C:\Inetpub\wwwroot\test\Default.aspx
显示
Http://localhost/test/default.aspx
../Default.aspx 指向C:\Inetpub\wwwroot\test\news\Default.aspx(两点表示当前文件的上一级目录)
显示
Http://localhost/test/news/default.aspx
/info/Default.aspx 指向C:\Inetpub\wwwroot\test\news\2008\info\Default.aspx
显示
Http://localhost/test/news/2008/info/default.aspx

/ 是超文本协议的路径分隔符号,所有的网站在浏览器中显示的路径分隔都是以"/"表示.它一般代表虚拟路径.
在普通程序代码中则以"\"表示文件路径分隔符号.它一般指物理路径.

 

./指的是当前目录
../指上一级目录
/的话,从根目录开始。
~/的话,从当前项目开始(.NET 2.0新加)。
http://localhost/的话,连域名也包含了,当你换一个域名的话就不能访问了。
Server.MapPath("./abc/")+"aaa.jpg"得到的是在当前服务器上的物理路径。

(1)/    任何场合它都表示根目录;
(2)~/ 由asp.net引擎帮你解析,也就是说,除了服务器控件外,其它地方(即HTML)使用都是无效的,它表示虚拟目录的根目录;《置疑》
(3)./ (一个点+斜杠)html中使用,表示当前目录;
(4)../ (两个点+斜杠)html中使用,表示当前目录的上一级目录。

可以通过以下来进行测试:
我的网站IIS目录为htdocs\,里面放着三个独立的网站,分别为WebSoft、HardWare、和Iss三个文件夹,测试页面放在WebSoft文件夹下的usercenter里,即Websoft/UserCenter/Test.aspx
protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write(Server.MapPath ("/"));
        Response.Write("<br />");
        Response .Write (Server .MapPath ("~/"));
        Response.Write("<br />");
        Response.Write(Server.MapPath("."));   //一个点
        Response.Write("<br />");
        Response.Write(Server.MapPath("./"));    //一点+斜杠
        Response.Write("<br />");
         Response.Write(Server.MapPath("../"));   //两点+斜杠
    }
测试结果为
D:\hosting\wwwroot\bjghsj_com\htdocs\
D:\hosting\wwwroot\bjghsj_com\htdocs\
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\UserCenter
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\UserCenter\    //有反斜杠
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\
D:\hosting\wwwroot\bjghsj_com\htdocs\



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETMvc实用框架(一)Ioc、仓储模式和单元工作模式-Jade_K发布时间:2022-07-10
下一篇:
asp.net中ckeditor的使用发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap