在ASP中,如何用代码获取虚拟目录的物理目录?
主页目录位于C:\Inetpub\wwwroot\sante
在下面建立虚拟目录doc = d:\data\document
文件fileload.asp位于 sante\download下
在文件中有代码:
Server.MapPath("doc") 结果返回:C:\Inetpub\wwwroot\sante\download\doc
Server.MapPath("/doc") 结果返回:C:\Inetpub\wwwroot\doc
Server.MapPath("../doc") 结果返回:C:\Inetpub\wwwroot\sante\doc
怎样才能通过doc获得目录:d:\data\document?
问题点数:30、回复次数:14Top
1 楼fluxayxxx(阿茂)回复于 2006-03-16 22:29:56 得分 10
不懂你的意思....
文件fileload.asp位于 sante\download下,所以Server.MapPath("") 取得的结果就是C:\Inetpub\wwwroot\sante\downloadTop
2 楼operfume(橘子香水)回复于 2006-03-16 23:39:24 得分 0
我想把上传的数据存储另一个磁盘上,如在d:\data\document,
所以建立了一个虚拟目录doc指向它,因为写入文件需要知道物理路径,所以不知道在fileload.asp中怎样才得到doc的实际物理目录.
Top
3 楼operfume(橘子香水)回复于 2006-03-16 23:40:15 得分 0
按道理, Server.MapPath("doc")应该返回d:\data\document?Top
4 楼sparks345(sparks345)回复于 2006-03-17 00:29:21 得分 0
doc=cStr(doc)
Server.MapPath(doc)Top
5 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 01:46:15 得分 15
你想在文件C:\Inetpub\wwwroot\sante\download\fileload.asp文件中取得doc虚拟目录的物理路径d:\data\document对吧,分析一下,按找你说的,虚拟目录download和虚拟目录doc应该是同级关系,你当前在虚拟目录download下对吧,所以应该是Server.MapPath("../doc") ,而你说这个取回的不正确是C:\Inetpub\wwwroot\sante\doc,不是想要的d:\data\document,我感觉这个是不可能的,非要找原因那我想只有一个原因:你的站点C:\Inetpub\wwwroot\sante不是iis的主目录,你的站点是虚拟目录sante,真正的主目录是C:\Inetpub\wwwroot,所以你要么改变主目录为C:\Inetpub\wwwroot\sante,要么用Server.MapPath("../sante/doc")
Top
6 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 01:55:48 得分 0
更正一下,上面最后一句应该为Server.MapPath("/sante/doc")Top
7 楼operfume(橘子香水)回复于 2006-03-17 08:57:17 得分 0
Server.MapPath("/sante/doc")返回的是:c:\inetpub\wwwroot\sante\doc
Top
8 楼operfume(橘子香水)回复于 2006-03-17 08:59:21 得分 0
<a href="doc/asp_1.htm">...</a>
能够打开d:\data\document中的文件asp_1.htmTop
9 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 09:12:15 得分 0
改变主目录为C:\Inetpub\wwwroot\sante,目前的主目录是C:\Inetpub\wwwroot,只要改了什么都就好了。Top
10 楼chenyu112(晨雨)回复于 2006-03-17 10:27:11 得分 0
学习一下Top
11 楼chenyu112(晨雨)回复于 2006-03-17 10:42:39 得分 5
Server.mappath("/你要取的虚拟目录名称"),我试过了,可以Top
12 楼operfume(橘子香水)回复于 2006-03-17 21:29:19 得分 0
不行,我把主目录改成C:\Inetpub\wwwroot也不行,太怪了.Top
13 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 22:06:17 得分 0
把主目录改成C:\Inetpub\wwwroot\santa,兄弟,咋这么笨呀Top
14 楼operfume(橘子香水)回复于 2006-03-17 23:16:43 得分 0
我知道了,只要把虚拟目录建立在网站的主目录下,
Server.MapPath("/doc")就对了.
当然把网站的主目录设置在santa也对,如果santa是一个应用,这样:
Server.MapPath("/santa/doc")才对.
我一直以为在一个应用下建立的虚拟目录,通过Server.MapPath("/doc")可以得到物理路径.
头脑短路了.Top




