如何从 Blazor WebAssembly 中的目录读取文件

How to read files from a directory in Blazor WebAssembly

我目前正在开发 .NET Standard 2.1 Blazor WebAssembly 应用程序。我尝试从我的 wwwroot 目录读取文件路径。

Blazor WebAssembly 应用不是 Asp.NET 核心托管。

我尝试从 Program.cs 中的 Main 方法读取所有以 .js 结尾的文件路径,如下所示:

var filePaths = ReadWwwRootJSFilePaths();
private static string[] ReadWwwRootJSFilePaths()
        {
            Console.WriteLine("CurrentDirectory: " + Directory.GetCurrentDirectory());
            var dir = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "js");
            Console.WriteLine("dir: " + dir);
            var files = Directory.GetFiles(dir);
            foreach (string file in files)
            {
                Console.WriteLine("file: " + file);
            }
            return files;
        }

当我 运行 时,我只在浏览器中收到一条错误消息:System.IO.DirectoryNotFoundException

你知道如何解决这个问题吗?您知道如何从 Blazor WASm(不是 ASP.NET Core 托管)应用程序中的 wwwroot 目录读取文件路径吗?

也许我还不太了解 Blazor WebAssembly(不是 ASP.NET Core 托管)的概念。是否真的可以使用 C# .NET Core 功能?

是的,您可以简单地对 wwwroot 中的文件执行 HTTP 调用。

要实际查看此操作,请创建一个 WebAssembly 独立项目,其中 FetchData 调用位于 wwwroot 中的 json 文件。这是一些代码:

protected override async Task OnInitializedAsync()
    {
        forecasts = await Http.GetJsonAsync<WeatherForecast[]>("sample-data/weather.json");
    }