查找Web应用程序的根目录

时间:2014-04-30 11:48:37

标签: c# .net asp.net-mvc

我试图在服务器上找到根文件夹。什么都行不通,或者做错了

@{
        string [] list = Directory.GetFiles(Directory.GetCurrentDirectory());
        foreach(var item in list)
        {
            <p>@item</p>   
        }
    }

准确显示我不需要的内容

@{
        string [] list = Directory.GetFiles("~/");
        foreach(var item in list)
        {
            <p>@item</p>   
        }

}

不能工作

如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

Server.MapPath("~");

~始终是ASP.NET应用程序的根。如果您将其插入Razor视图,它将被转换为适当的“外部访问”路径,例如如果网站位于根目录中,则~/Content/site.css将转换为/Content/site.css/Page1/Content/site.css如果它托管在名为Page1的虚拟目录中。因此,获得“映射”所需的绝对路径。

如果您无法访问Server,也可以使用HostingEnvironment.ApplicationPhysicalPath

答案 1 :(得分:1)

尝试

Server.MapPath("~");

或:

HostingEnvironment.ApplicationPhysicalPath 

答案 2 :(得分:0)

参考http://msdn.microsoft.com/en-us/library/ms178116.aspx。 为了您的方便,我修改了您的代码:

string [] list = Directory.GetFiles(Server.MapPath("~"));
        StringBuilder sb=new StringBuilder();
        foreach (var item in list)
        {
            sb.Append(item + "\n");
        }

        Response.Write(sb);

即使我给你回答,我也会建议尝试在web.config或数据库中配置路径,因为修复路径就像硬编码登录ID :)。希望你能帮助我。

由于