无法从 OneDrive C# SDK 查看子元素

Unable to view child elements from OneDrive C# SDK

我正在针对 OneDrive C# SDK 进行编码,我被共享了一个包含多个文件的文件夹。从 onedrive.com 访问共享文件夹时,我能够查看文件——但是当尝试检查 Item 时,子项计数始终为零。我假设这可能是我的一些混淆或权限问题——但我只是想 运行 它过去进行完整性检查。

代码:

private async Task GetItem(string id = null)
{
    List<string> idsToSearch = new List<string>();
    var expandValue = this.clientType == ClientType.Consumer
            ? "thumbnails,children(expand=thumbnails)"
            : "thumbnails,children";
    try
    {
        Item folder;

        if (id == null)
        {
            folder = await this.oneDriveClient.Drive.Root.Request()
                           .Expand(expandValue).GetAsync(); //root
        }
        else
        {
            folder = await this.oneDriveClient.Drive.Items[id].Request()
                           .Expand(expandValue).GetAsync(); //children of root
        }

        WriteToFile(new List<string>(new[] { @"Folder: " + folder.Name }));

        if (folder.Children.Count == 0)
        {
            WriteToFile(new List<string>(new[] { @"NO Children" }));
        }
        else
        {
            foreach (var child in folder.Children)
            {
                WriteToFile(new List<string>(new[] { 
                @"Children of " + folder.Name + " : " + child.Name }));
            }

            foreach (var item in folder.Children)
            {
                GetItem(item.Id);
                idsToSearch.Add(item.Id);
            }
        }
    }
    catch (Exception exception)
    {
        PresentServiceException(exception);
    }
}

我还包括 Item 对象到达共享文件夹对象时的快照:

更新

在进一步查看 folder 对象后,我发现 RemoteItem 返回了正确数量的子元素——但是没有任何元数据来获取子元素.

根据对问题的评论,确定这是一个 RemoteItem 场景。远程项目与本地项目不同——虽然有一些对渲染有用的本地元数据,但项目的实际元数据存在于另一个用户的驱动器中。因此,当遇到这样的项目时,可能有必要(例如,如果您需要枚举远程文件夹的子文件夹),因为需要直接为相关项目发出后续请求(使用 driveId 来自 remoteItem.parentReferenceremoteItem.Id 中的 id

看看this documentation for some more information