似乎无法使用OneDrive SDK c#从OneDrive中嵌入的共享文件夹下载/上传文件。
模拟行为的步骤:
如果您在“Shared01”文件夹中导航,则不会显示存储在该文件夹中的文件;
您无法上传/下载或修改文件夹中的文件。
另外,如果您尝试通过请求使用“Shared01”中包含的{item-id}文件:
using (var stream = await this.oneDriveClient.Drive.Items[itemToOpen.Id].Content.Request().GetAsync())
别名:
GET /drive/items/{item-id}/content
您收到以下错误:
"{Code: itemNotFoundThrow site: 29a3.1155Message: Item does not exist}"
过去,这个要求奏效了。
答案 0 :(得分:0)
This API documentation解释了这一点,概念应该映射到您对SDK的使用。基本上,当您向驱动器添加共享文件夹时,实质上是添加指针。可以通过RefDate___
构面的存在来检测这些指针,该构面将包含共享文件夹(remoteItem
)的标识和该文件夹所在的驱动器(remoteItem.Id
)。
要查询共享文件夹,您需要使用以下两条信息构建remoteItem.parentReference.driveId
查询:
drives
然后您可以使用以下方式让孩子们使用:
oneDriveClient.Drives[{remoteItem.parentReference.driveId}].Items[{remoteItem.Id}]
随后使用以下方式下载儿童:
oneDriveClient.Drives[{remoteItem.parentReference.driveId}].Items[{remoteItem.Id}].Children
OR
oneDriveClient.Drives[{remoteItem.parentReference.driveId}].Items[{remoteItem.Id}].Children[{child.name}]
过去使用oneDriveClient.Drives[{remoteItem.parentReference.driveId}].Items[{child.Id}]
和drive
可能有效,但鉴于错误的驱动器被定位,这绝对不是意图。