Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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# 从绝对文件路径读取UWP中的ReadLinesAsSync_C#_Uwp_Uwp Xaml - Fatal编程技术网

C# 从绝对文件路径读取UWP中的ReadLinesAsSync

C# 从绝对文件路径读取UWP中的ReadLinesAsSync,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我犯了一个错误 文件名、目录名或卷标语法不正确。(HRESULT的例外:0x8007007B) 我的代码是 public async void ReadFile() { var path = @"F:\VS\WriteLines.xls"; var folder = Windows.ApplicationModel.Package.Current.InstalledLocation; var file = await folde

我犯了一个错误

文件名、目录名或卷标语法不正确。(HRESULT的例外:0x8007007B)

我的代码是

public async void ReadFile()
    {     
        var path = @"F:\VS\WriteLines.xls";
        var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;

        var file = await folder.GetFileAsync(path);
        var readFile = await Windows.Storage.FileIO.ReadLinesAsync(file);
        foreach (var line in readFile.OrderBy(line =>
        {
            int lineNo;
            var success = int.TryParse(line.Split(';')[4], out lineNo);
            if (success) return lineNo;
            return int.MaxValue;
        }))
        {
            itemsControl.Items.Add(line);
        }
    }

错误显示在
var file=await folder.GetFileAsync(路径)处

您正在请求应用程序本地文件夹中具有绝对路径的文件-因此,当您提供包含驱动器名的路径时,它会抛出该错误

一般来说,UWP对从何处/如何获取文件有很大限制-我不认为您可以从示例中的绝对路径获取文件(应用程序需要更多权限才能访问类似的位置)。你可以试试


有关应用程序可以访问的位置的详细信息-。

在UWP应用程序中,您无法从磁盘上的任意位置读取文件。 您仍然可以通过以下几种方式完成任务:

  • 您可以将WriteLines.xls文件添加到项目中,并将其构建操作设置为内容,以及复制到输出目录设置为复制(如果更新)。然后,只需将“path”值替换为以下值,即可使用现有代码访问该文件:
  • var path=@“WriteLines.xls”

  • 如果需要能够从磁盘读取任何文件,则需要使用文件选择器选择该文件,或将该文件复制到“文档”文件夹中,并将文件夹更改为:
  • var folder=KnownFolders.DocumentsLibrary


    只是为了确保路径正确且文件存在。旁注XLS通常为非文本格式。。。所以读成一行一行的文本可能会失败——但这不太可能是你们看到的错误原因。我也尝试过使用.txt文件,但它也不起作用。我坚持使用.xls是因为在普通的控制台代码中它工作正常,并且我能够成功地列出.xls中的行。我在提供路径的方式上是否犯了一些错误?在构建之前没有强调任何内容。只有在构建时,路径上才会出现错误。路径和文件格式正常。首先,你使用了错误的api,其次,你的应用程序可能没有访问aby文件的权限。看看这个。为什么需要从硬编码的url读取文件?基本上,在UWP中,文件必须位于应用程序安装文件夹、应用程序数据文件夹或文档库中,或者您需要让用户选择文件,例如使用文件选择器。他询问的是UWP,这与Win8不同。这个链接会更好:@Liero我找不到好的链接。Win8 RT很接近,但实际上您找到的链接比它好。我已经把它编辑到帖子里了。解决方案NR1实际上让我又开始了。非常感谢你。我不再得到错误和解决方案构建。我需要在XAML端进行分类,因为我仍然无法显示我的行。明白了,我设法在XAML页面上显示了我的.xls行。谢谢你的解决方案!