文件不包含'的定义REGDATA'

时间:2017-02-22 10:59:00

标签: c# uwp

我一直在尝试使用插入我的UWP应用程序的Microsoft.OneDriveSDK下载文本文件内容。但是我收到此错误消息:文件不包含' regData'的定义,其中regData.txt是包含我需要的详细信息的文件。

   Debug.WriteLine($"Content for file {Microsoft.OneDrive.Sdk.File.regData}:")

还从微软网站上找到了一个例子,如下所示:仍然无法弄清楚" Name"在这种情况下代表。

   Debug.WriteLine($"Content for file {file.Name}:"); 

1 个答案:

答案 0 :(得分:0)

  

文件不包含'regData'的定义

对于这个问题,正如@Crowcoder所说,Microsoft.OneDrive.Sdk.File类没有静态属性regData。你不能以这种方式获得文件。

  

非常正确,因为我首先定义变量文件如下:var file = await builder.Content.Request()。GetAsync();而我认为我真正没有得到的是它的属性“名称”我试过fiew但仍然出错。

您似乎找到了示例 - 图2从this article下载文本文件的内容。我测试了样品,它可以在我身边很好地工作,并且可以获得名称属性。我用于测试的代码如下:

IItemRequestBuilder builder = app.OneDriveClient
     .Drive
     .Root
     .ItemWithPath("regfolder/regdata.txt");
 Item file = await builder
   .Request()
   .GetAsync();
 Stream contentStream = await builder.Content
   .Request()
   .GetAsync();
 Debug.WriteLine($"Content for file {file.Name}:");

 using (var reader = new StreamReader(contentStream))
 {
     Debug.WriteLine(reader.ReadToEnd());
 }

结果:

enter image description here

要获取文件名属性的问题,您可能需要检查以下内容:

  • 该文件夹包含txt文件,可能需要公开;
  • 你得到的txt文件应该是Item对象而不是File对象,单个驱动程序sdk中的File类不包含name属性{{3} } has;
  • 确保您确实可以通过路径正确获取文件。您可以使用上面的代码段来检查Item file=...是否有值。

由于您没有提供所有代码段,只提供var file = await builder.Content.Request().GetAsync();。我不确定你的builder是什么,但看起来你Content没有尝试获得Item。内容通常是Stream对象不应包含name属性。如果此构建器与我的相同,那么IItemRequestBuilder对象应该通过代码await builder.Request().GetAsync();获取文件对象。请尝试使用上面的代码片段替换文件路径以进行测试。