我很茫然。我一直在尝试调试:
System.IO.FileNotFoundException: Could not find file "/C:\Users\Jehy\source\repos\Portfolio\demoJSON\demoquery.json"
通过将完全相同的内容粘贴到CMD中,我可以在该路径下访问文件。
我尝试将所有目录分成一个列表,然后让Path.Combine完成所有工作。我尝试添加和删除文件扩展名。
string filepath = Path.Combine(new string[] { @"C:\Users\Jehy\source\repos\Portfolio\demoJSON\demoquery.json"});
Debug.WriteLine(filepath);
List<DataObject> data = ParseJSON(LoadJSON(filepath));
最让我困惑的是在错误消息中的C:\前面添加了/。
编辑:
System.IO.DirectoryNotFoundException: Could not find a part of the path '/C:\'.
来自
string filepath = @"C:\";
Debug.WriteLine(Directory.GetFiles(filepath));
这使我认为我的代码正在尝试访问仿真设备上的文件。我可以从我的计算机访问文件吗?
最终编辑:
事实证明,我一直在浏览仿真设备,这很明显。我将找到另一种解决问题的方法。如果有人偶然发现此问题,则是由于此原因而在文件路径开头添加的“ /”。
答案 0 :(得分:0)
string filepath = @"C:\Users\Jehy\source\repos\Portfolio\demoJSON\demoquery.json";
应该可以,但是我建议避免使用绝对文件路径,因为如果您尝试在另一台计算机上执行它,那么它将无法正常工作。
我建议使用相对路径,方法是将demoJSON文件夹与可执行文件放在同一目录中并使用
string filepath = Path.Combine("demoJSON", "demoquery.json");