如何从相对路径加载c#中的json文件?

如何从相对路径加载c#中的json文件?,c#,json,asp.net-core,relative-path,C#,Json,Asp.net Core,Relative Path,我在文件夹中本地化JSON文件时遇到问题。我有一个测试类,在同一个目录中,我有一个JSON文件。所以我想要实现的是用相对路径检索JSON文件 我试过的就是这个 var jsonString = File.ReadAllText("\\TemplateUrlOk.json"); 更新 这是测试项目的结构 我将回答我的问题,因此我发现了问题 @ADyson提到,当项目构建时,JSON文件需要复制到目录中,我就是这么做的。但是,它位于另一个名为EmailController的文件夹中,文件名为

我在文件夹中本地化JSON文件时遇到问题。我有一个测试类,在同一个目录中,我有一个JSON文件。所以我想要实现的是用相对路径检索JSON文件

我试过的就是这个

 var jsonString = File.ReadAllText("\\TemplateUrlOk.json");
更新

这是测试项目的结构


我将回答我的问题,因此我发现了问题


@ADyson提到,当项目构建时,JSON文件需要复制到目录中,我就是这么做的。但是,它位于另一个名为EmailController的文件夹中,文件名为

是控制台应用程序还是windows应用程序或web应用程序?如果是桌面应用程序或服务,您是否已将JSON文件设置为在生成和运行应用程序时复制到生成目录中?windows路径中的
\\
语法也是UNC文件共享格式,例如
\\servername\foldername
。因此,如果在代码运行时文件应该与可执行文件位于同一文件夹中,那么您可以只提供文件名而不使用任何斜杠。那么通常使用“.\”的相对地址呢?意思是:
var jsonString=File.ReadAllText(@.\TemplateUrlOk.json”)
@FalcoAlexander您需要一个额外的反斜杠来转义第一个反斜杠,或者将其转换为带有@符号的字符串文字。您是否查看了文件是否复制到\bin\Debug下的任何位置?如果是,在哪里?(很抱歉,我对ASP.NET核心构建方式的熟悉程度不如.NET Framework。)