我一直在尝试使用插入我的UWP应用程序的Microsoft.OneDriveSDK下载文本文件内容。但是我收到此错误消息:文件不包含' regData'的定义,其中regData.txt是包含我需要的详细信息的文件。
Debug.WriteLine($"Content for file {Microsoft.OneDrive.Sdk.File.regData}:")
还从微软网站上找到了一个例子,如下所示:仍然无法弄清楚" Name"在这种情况下代表。
Debug.WriteLine($"Content for file {file.Name}:");
答案 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());
}
结果:
要获取文件名属性的问题,您可能需要检查以下内容:
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();
获取文件对象。请尝试使用上面的代码片段替换文件路径以进行测试。