当我试图读取JSON文件(或任何文件)时,我遇到了这个问题:它找不到那个文件。我尝试一切,甚至绝对路径(错误几乎相同- DirectoryNotFound)。

这是矿井代码的结构:

,这是代码:
private void LoadJson()
{
using (var r = new StreamReader("quizQuestions.json"))
{
string json = r.ReadToEnd();
items = JsonConvert.DeserializeObject<List<Questions>>(json);
}
}我甚至尝试使用Directory.GetCurrentDirectory(),但是它正在返回:/ ->只返回这个字符。我不知道哪里是错误,或者我是不是忘了设置什么。我试图在任何地方找到答案,但我找不到任何答案。
发布于 2022-03-18 08:11:19
确保文件的Build设置为Content或Asset,并尝试一下。
private void LoadJson()
{
AssetManager assets = this.Assets;
using (var r = new StreamReader(assets.Open ("quizQuestions.json")))
{
string json = r.ReadToEnd();
items = JsonConvert.DeserializeObject<List<Questions>>(json);
}
}发布于 2022-03-18 10:01:52
您可以将文件配置为Embedded Resource,然后按如下方式访问它:
public static Stream GetEmbeddedResourceStream(Assembly assembly, string resourceFileName)
{
var resourceNames = assembly.GetManifestResourceNames();
var resourcePaths = resourceNames
.Where(x => x.EndsWith(resourceFileName, StringComparison.CurrentCultureIgnoreCase)).ToArray();
if (resourcePaths.Any() && resourcePaths.Count() == 1)
{
return assembly.GetManifestResourceStream(resourcePaths.Single());
}
return null; // or throw Exception
}
private void LoadJson()
{
Assembly assembly = GetAssemblyContainingTheJson();
using (var r = GetEmbeddedResourceStream(assembly, "quizQuestions.json"))
{
string json = r.ReadToEnd();
items = JsonConvert.DeserializeObject<List<Questions>>(json);
}
}https://stackoverflow.com/questions/71524026
复制相似问题