我试图在服务器上找到根文件夹。什么都行不通,或者做错了
@{
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>
}
}
不能工作
如何解决这个问题?
答案 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 :)。希望你能帮助我。
由于