asp.net - 列出 ASP .NET Core 中解决方案文件夹中的每个文件的问题
问题描述
我想在无序列表中列出文件的名称(在本例中为文章),但在获取文件的绝对路径时遇到问题。如何获得可靠且符合标准的解决方案来在 ASP .NET Core 中列出解决方案文件名?
我试过调用 Directory.EnumerateFiles (在目录路径参数中有和没有~)
我也尝试过使用 GetFiles,在路径错误上得到了类似的结果。
我的代码如下:
<p>
<ul>
@foreach (string articulo in Directory.EnumerateFiles("~/Views/Articulo"))
{
<li>
<a asp-controller="Articulo" asp-action="@articulo">@articulo</a>
</li>
}
</ul>
</p>
目前解决方案上的DOM如下:
-Root Application
-Views
-Articulo
-Todo.cshtml //Only page in the folder
我希望在尝试提出正确的锚标记时会出现一些错误,但我得到了一个路径错误:
'Directory.EnumerateFiles("~/Views/Articulo")' threw an exception of type 'System.IO.DirectoryNotFoundException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2147024893
HelpLink: null
InnerException: null
Message: "Could not find a part of the path 'C:\\Users\\MyUser\\Documents\\Source\\Repos\\MyRepo\\MySolution\\~\\Views\\Articulo'."
Source: "System.IO.FileSystem"
StackTrace: " at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)\r\n at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)\r\n at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)\r\n at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)\r\n at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)\r\n at System.IO.Directory.EnumerateFiles(String path)"
TargetSite: {IntPtr CreateDirectoryHandle(System.String, Boolean)}
解决方案
EnumerateFiles("~/Views/Articulo")
不会~
扩展. 您需要手动获取真实路径:
@using System.IO
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment env
<ul>
@{
var dir = System.IO.Path.Combine(env.ContentRootPath,"Views/Articulo");
}
@if(System.IO.Directory.Exists(dir))
{
@foreach (string articulo in Directory.EnumerateFiles(dir))
{
<li>
<a asp-controller="Articulo" asp-action="@articulo">@articulo</a>
</li>
}
}else{
<span>"No Files"</span>
}
</ul>
推荐阅读
- javascript - 如何在 ReactJS 中关闭当前浏览器选项卡?
- java - 用一次性代码交换刷新令牌时的 Google OAuth redirect_uri_mismatch
- rx-java - CompositeDisposable.dispose() 导致 NPE
- php - 使用简码在侧边栏中获取 Woocommerce 自定义分类法
- r - 使用回归树将人口分成具有相似特征的组
- mysql - 如何调整我的 NoSQL 查询以显示正确的结果?预期结果是显示软件的最高销售排名
- python - python中frq分析的新手,Scipy rfft
- laravel - 如何使用表单发布方法获取数据并使用 axios 和 vue js 导航到下一条路线
- ios - iOS 中的磁盘映像或容器
- c++ - 为子项目应用 CMake 设置