Dus*_*tuu 6 c# .net-core wwwroot blazor blazor-webassembly
我正在尝试获取 Blazor WebAssembly 项目中 wwwroot 文件夹内的静态文件列表。这是我到目前为止所尝试过的:
string[] images = Directory.GetFiles(@"wwwroot\images", "*.jpg");
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Could not find a part of the path '/wwwroot\images'.
Run Code Online (Sandbox Code Playgroud)
System.IO.DirectoryNotFoundException:找不到路径“/wwwroot\images”的一部分。
我究竟做错了什么?谢谢。
我的第一个想法是Directory.GetFiles()Blazor WebAssembly 不应该支持它 - 文件系统不允许您这样做。
但运行System.IO.Directory.GetDirectories(".")会给出以下输出:
./tmp
./home
./dev
./proc
./zoneinfo
Run Code Online (Sandbox Code Playgroud)
您可以获取一些预先打包的文件和文件夹。但它们都不包含 wwwroot 和您想要的内容。
因此,您可以使用Http.GetStreamAsync()或来获取您已经知道名称的Http.GetByteArrayAsync()图像文件的内容。没有直接的方法来扫描文件夹:这是一种安全功能。(我知道您可以配置 ISS 以允许“浏览”文件夹,但这违背了最佳实践并为您提供了要解析的 HTML)。
如果您确实想扫描文件夹,请构建一个 API 来执行此操作。您需要在服务器上运行它。
| 归档时间: |
|
| 查看次数: |
9298 次 |
| 最近记录: |