System.IO.FileNotFoundException具有神秘的正斜杠

时间:2018-12-23 01:17:02

标签: c# .net visual-studio xamarin xamarin.forms

我很茫然。我一直在尝试调试:

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));

这使我认为我的代码正在尝试访问仿真设备上的文件。我可以从我的计算机访问文件吗?


最终编辑:

事实证明,我一直在浏览仿真设备,这很明显。我将找到另一种解决问题的方法。如果有人偶然发现此问题,则是由于此原因而在文件路径开头添加的“ /”。

1 个答案:

答案 0 :(得分:0)

string filepath = @"C:\Users\Jehy\source\repos\Portfolio\demoJSON\demoquery.json";

应该可以,但是我建议避免使用绝对文件路径,因为如果您尝试在另一台计算机上执行它,那么它将无法正常工作。

我建议使用相对路径,方法是将demoJSON文件夹与可执行文件放在同一目录中并使用

string filepath = Path.Combine("demoJSON", "demoquery.json");