[网络收集]asp.net文件路径问题
2010-12-06 16:51
225 查看
如果有文件夹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\
./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\
相关文章推荐
- ASP.NET 2.0中母版页中引用文件路径的问题(收集)
- ASP.NET 路径问题收集
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- asp.net 文件路径问题,Png图片透明问题,js提示对象不支持属性和方法的解决方案
- ASP.NET 2.0中母版页中引用文件路径的问题
- ASP.NET中母版页中引用文件路径的问题
- ASP.NET 2.0中母版页中引用文件路径的问题(对原处理方法中的bug进行了修改)
- ASP.NET 2.0中母版页中引用文件路径的问题
- asp.net母板页引用文件的路径问题
- [网络收集]ASP.NET上传图片和文件的方法
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- ASP.NET FileUpload文件上传路径问题
- [网络收集]分析ASP.NET读取XML文件4种方法
- asp.net母板页引用文件的路径问题
- Asp.Net中使用Access数据库配置文件使用相对路径问题
- ASP.Net 类库引用文件路径问题及解决方案
- asp.net 文件路径问题
- [转]asp.net母板页引用文件的路径问题
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- [网络收集]asp.net文件上传/.net上传图片方法