Asp.net mvc 获取文件夹中的文件
在我的MVC应用程序中,我有以下路径:Asp.net mvc 获取文件夹中的文件,asp.net-mvc,file,Asp.net Mvc,File,在我的MVC应用程序中,我有以下路径: /内容/图片/完整 /内容/图像/拇指 在我的c#控制器中,我如何获得thumbs文件夹中所有文件的列表 编辑 Server.MapPath仍然是最好的方法吗 我现在有了这个DirectoryInfo di=newdirectoryinfo(Server.MapPath(“/content/images/thumbs”)但我觉得这不是正确的方法 MVC中是否有一个最佳实践,或者上面的说法是否仍然正确 Directory.GetFiles("/conte
- /内容/图片/完整
- /内容/图像/拇指
DirectoryInfo di=newdirectoryinfo(Server.MapPath(“/content/images/thumbs”)代码>但我觉得这不是正确的方法
MVC中是否有一个最佳实践,或者上面的说法是否仍然正确
Directory.GetFiles("/content/images/thumbs")
这将把目录中的所有文件放入字符串数组。.NET 4.0提供了一种更有效的方法:
Directory.EnumerateFiles(Server.MapPath("~/Content/images/thumbs"));
您将获得一个IEnumerable
,您可以在该视图上进行迭代:
@model IEnumerable<string>
<ul>
@foreach (var fullPath in Model)
{
var fileName = Path.GetFileName(fullPath);
<li>@fileName</li>
}
</ul>
@model IEnumerable
@foreach(模型中的var完整路径)
{
var fileName=Path.GetFileName(完整路径);
- @文件名
}
@Daniel我无法让它工作。它在c:\content\images\thumbs而不是我的web应用程序级别进行映射。你能提供更多关于你正在尝试做什么的信息吗?听起来像是要将文件路径列表返回到视图。在这种情况下,在视图中,尝试使用
,其中filePath是本地路径。哎呀,刚才注意到Server.MapPath()
实际上将服务器路径转换为文件路径。现在正在寻找一些其他的解决方案……我发现:虽然看起来有点脆弱。我可能只需要使用Path.GetFileName(file)
获取文件名,并在其前面附加虚拟路径。在我看来,上述(Server.MapPath
)是正确且可接受的。如果您在查找服务器时遇到问题,请检查以下问题:您可以通过提供指向完整路径的链接来提供这些文件吗,或者你需要一个处理程序吗?@selectDistinct不知道你的意思。Server.MapPath将虚拟路径转换为物理目录路径。当然,执行代码的进程需要访问此路径的权限。OP要求提供一份文件列表