Я хотел бы перечислить имена файлов (в данном случае статьи) в неупорядоченном списке, но у меня возникают проблемы с получением абсолютного пути к файлам. Как получить надежное и совместимое со стандартами решение для перечисления имен файлов решений в 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)}