Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找不到路径_C#_Csv_Xamarin.forms - Fatal编程技术网

C# 找不到路径

C# 找不到路径,c#,csv,xamarin.forms,C#,Csv,Xamarin.forms,尝试打开文件时出现此错误。文件路径确实存在。我从资源管理器复制了该路径,以确保路径字符串中没有错误 System.IO.FileNotFoundException:找不到文件 /C:\Users\Mario\Documents\ativita\ativita\produtos\u 20180713.CSV 首先,您已经给出了完整路径,应该从代码中删除path.GetDirectoryName: banco_produtos[] csv = File.ReadAllLines("C:\\Us

尝试打开文件时出现此错误。文件路径确实存在。我从资源管理器复制了该路径,以确保路径字符串中没有错误

System.IO.FileNotFoundException:找不到文件 /C:\Users\Mario\Documents\ativita\ativita\produtos\u 20180713.CSV


首先,您已经给出了完整路径,应该从代码中删除path.GetDirectoryName:

   banco_produtos[] csv = File.ReadAllLines("C:\\Users\\Mario\\Documents\\ativita\\ativita\\produtos_20180713.CSV")
                           .Skip(1)
                           .Select(c => c.Split(','))
                           .Select(x => new //there some code here 

                           });

2-ReadAllLines,返回数组而不是列表,因此您必须使用banco_produtos[]csv或使用.ToList将其转换为列表。

这似乎是字符未转义的问题。尝试将路径设置为变量,然后将该变量传递给GetDirectoryName调用

尝试:


为什么要调用Path.GetDirectoryName?如果这是Xamarin应用程序,则它无法读取位于桌面上的文件。它只能读取运行它们的设备/模拟器的文件系统中的文件。@mjwills如果这是Xamarin,目标可能是类Unix系统,在这种情况下,我可以合理地看到Path.GetDirectoryName在Windows样式的路径的开头放了一个/。在代码添加它的C之前没有/。@Jason,如果我放在模拟器中,我如何获得文件路径?我可以执行与winc:\\Users相同的操作,但是emultator中的路径是什么?如果您将目录名传入,则无法从文件中读取行。应完全删除Path.GetDirectoryName。OP确实正确地转义了它们的路径。我现在正在做的是使用@jason的注释并执行了此操作。将文件添加到项目中,并将其添加到资源和代码中:var assembly=IntrospectionExtensions.GetTypeInfotypeofnovo_produto.assembly;Stream=assembly.GetManifestResourceStreamativita.Class1.txt;但现在流返回null。编辑我的注释以反映目录而不是文件。我没有意识到OP的错误是试图使用Path.GetDirectoryName从文件中读取行。我对OP的目的感到困惑。我确实在结尾使用了。ToList。@Mario很棒。我只是想确保代码能为您工作。如果有帮助的话,请投票并标记为答案。这毫无意义。这里最大的问题是路径指向Windows系统,我们在这里讨论的是移动设备。这永远不会像这样工作。我在这里要做的是展示使用File.ReadAllLines的正确方法
   banco_produtos[] csv = File.ReadAllLines("C:\\Users\\Mario\\Documents\\ativita\\ativita\\produtos_20180713.CSV")
                           .Skip(1)
                           .Select(c => c.Split(','))
                           .Select(x => new //there some code here 

                           });
var path = @"C:\Users\Mario\Documents\ativita\ativita\";


List <banco_produtos> csv = File.ReadAllLines(Path.GetDirectoryName(path))
                       .Skip(1)
                       .Select(c => c.Split(','))
                       .Select(x => new //there some code here 

                       })