ASP.NET中的虚拟路径

时间:2011-11-29 10:10:24

标签: c# asp.net .net server.mappath

我使用此代码为我的LinkBut​​ton下载文件时单击它。 最近我遇到了这个问题,我需要一条虚拟路径。

我想重定向到C:\inetpub\wwwroot

 string filepath = Server.MapPath("...");           
 FileInfo myfile = new FileInfo(filepath);

所以我不知道在Server.MapPath()中放什么,因为如果我把它放到我的文件夹文件的基础而没有In

4 个答案:

答案 0 :(得分:2)

您目前在My Documents下面看到一个文件夹,因为您正在项目文件夹中运行/调试,可能使用的是开发服务器或IISExpress。

只要您将网站部署到C:\Inetpub下的文件夹,MapPath就会返回该文件夹。

但是,作为安全措施,您无法将应用程序中的根文件夹更高(在树中)返回。

如果需要,您必须自己从返回的路径中删除文件夹。您可以使用System.IO.Path

答案 1 :(得分:1)

您不能从根向上移动。 root表示应用程序的根文件夹。如果你这样做,那就是安全漏洞。

因此,如果您希望转到应用程序的根目录,可以使用Server.MapPath("~");

答案 2 :(得分:1)

如果您需要从系统的其他部分提供文件,那么最好的方法是创建虚拟目录

在IIS中右键单击您的网站,单击“添加虚拟目录”。给它一个名字,并指出它你需要它。例如。名为'files'的新虚拟目录,指向'C:\ inetpub \ wwwroot \ files'。

然后,从您的网站中,您可以使用

引用这些文件

/files/filename.txt< - / files / 将链接到您的虚拟目录。

然后,您当然需要确保正确设置权限以阅读这些文件,但我会将其留给您。

答案 3 :(得分:0)

Server.MapPath("~"); 

将为您提供当前的Web应用程序根目录。