我正在使用c#中的ms图sdk将文件从驱动器复制到另一个驱动器。
要复制到驱动器中,我必须获取目标驱动器的parentReference。
我使用下面的代码:
var parentref = graphClient
.Sites[IdGestDoc]
.Drives[DriveId]
.Root
.Request()
.GetAsync()
.Result;
var parentReference = new ItemReference
{
DriveId = DriveId,
Id = parentref.Id
};
当我使用根驱动器的驱动器ID尝试时,它运行良好。
但是,当我尝试将此行与子驱动器的驱动器ID一起使用时,它将返回以下错误消息:
提供的驱动器ID似乎格式错误,或不代表有效的驱动器。
我以为可以将代码用于任何驱动器ID,但事实并非如此。
那么我如何获得与根驱动器相同的子驱动器信息?
有关更多详细信息,根驱动器的ID如下所示:
b!07TT1TT6TTOI-xYElkDOj9a5a_hmu6RDt0mpVQfH3RFpCR1wxODCRpss4Xq4g75t
另一方面,子驱动器的ID如下所示:
01QVACJXG2T46MR734INA24SEQ3LZYRIZR
很明显,有两种不同类型的ID,所以我收到了错误消息。这就是为什么我要问如何获取信息以填充文件副本的父引用对象成功?
我知道为了将文件复制到目标驱动器,ParentReference需要填充DriveId和Id。
我不知道DriveId是根Drive的ID。
因此,为了使复制成功,ParentReference对象必须类似于以下内容:
var parentReference = new ItemReference
{
DriveId = DriveId, //root drive Id => b!07TT1TT6TTOI-xYElkDOj9a5a_hmu6RDt0mpVQfH3RFpCR1wxODCRpss4Xq4g75t
Id = parentref.Id //destination drive Id => 01QVACJXG2T46MR734INA24SEQ3LZYRIZR
};
您可以使用以下端点获取subDrive的parentReference:
/ sites / {site-id} / drive / items / {item-id}