如何在另一个 ms graph sdk 中获取驱动器的信息

How to get informations of a drive inside another ms graph sdk

我正在使用 c# 中的 ms graph sdk 将文件从一个驱动器复制到另一个驱动器。

要复制到驱动器,我必须获取目标驱动器的 parentReference。

我使用下面的代码:

var parentref = graphClient
  .Sites[IdGestDoc]
  .Drives[DriveId]
  .Root
  .Request()
  .GetAsync()
  .Result;

var parentReference = new ItemReference
{
  DriveId = DriveId,
  Id = parentref.Id
};

当我使用根驱动器的驱动器 ID 尝试时,它运行良好。

但是当我尝试将此行与子驱动器的驱动器 ID 一起使用时,returns 出现以下错误消息:

The provided drive id appears to be malformed, or does not represent a valid drive.

我以为我可以使用任何驱动器 ID 的代码,但它似乎不是真的。

那么我怎样才能获得与根驱动器相同的子驱动器信息呢?

有关更多详细信息,根驱动器的 ID 如下所示:

b!07TT1TT6TTOI-xYElkDOj9a5a_hmu6RDt0mpVQfH3RFpCR1wxODCRpss4Xq4g75t

另一方面,子驱动器的 ID 如下所示:

01QVACJXG2T46MR734INA24SEQ3LZYRIZR

很明显有两种不同类型的 ID,所以我收到了错误消息。这就是为什么我要问如何获取信息来填充父引用对象以便文件复制成功?

我知道为了将文件复制到目标驱动器,ParentReference 需要填写 DriveId 和 Id。

我不知道的是 DriveId 是根驱动器的 ID。

因此,为了使复制成功,ParentReference 对象必须如下所示:

    var parentReference = new ItemReference
    {
        DriveId = DriveId, //root drive Id => b!07TT1TT6TTOI-xYElkDOj9a5a_hmu6RDt0mpVQfH3RFpCR1wxODCRpss4Xq4g75t
        Id = parentref.Id //destination drive Id => 01QVACJXG2T46MR734INA24SEQ3LZYRIZR
    };

您使用此端点获取子驱动器的父引用:

/sites/{site-id}/drive/items/{item-id}