如何在 ASP.NET Core 的 .json 配置文件中以跨平台方式存储文件路径?

Posted

技术标签:

【中文标题】如何在 ASP.NET Core 的 .json 配置文件中以跨平台方式存储文件路径?【英文标题】:How to store file paths in a cross platform way in a .json configuration file in ASP.NET Core? 【发布时间】:2020-09-07 06:51:56 【问题描述】:

如何在ASP.NET Core的.json配置文件中跨平台存储文件路径?

例如我在配置中有条目:

MyPath: "C:\\Foo\\Bar"

并且该路径适用于 Windows,但不适用于 Linux。我知道Path.DirectorySeparatorChar,但我如何在.json 中使用它?还是我应该使用不同的东西?

【问题讨论】:

【参考方案1】:

试试看:

                    // IWebHostEnvironment _webHost
                    // IConfiguration Configuration
                    var listOfPath = Configuration["my-path"].ToString()
                        .Split("\\", StringSplitOptions.RemoveEmptyEntries);

                    var uploadPath = Path.Combine(_webHost.WebRootPath );
                    foreach (var folders in listOfPath)
                    
                        uploadPath = Path.Combine(uploadPath, folders);
                    

【讨论】:

为什么要使用toString() 方法?无论如何,配置返回为string

以上是关于如何在 ASP.NET Core 的 .json 配置文件中以跨平台方式存储文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ocelot.json 路由 asp.net core 中发布 json body

如何在 JSON 响应 ASP.NET Core 中关闭或处理 camelCasing?

如何在 asp.net core web api 中绑定 Json Query 字符串

如何在 ASP.NET Core 的 .json 配置文件中以跨平台方式存储文件路径?

在Asp.Net Core 3.0中如何使用 Newtonsoft.Json 库序列化数据

ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?