我查看有关此文档,并为IDriveItemCollectionPage的工作方式而苦苦挣扎。

我目前正在执行以下操作,尝试列出使用Java SDK给出其驱动器ID的站点根驱动器的所有子驱动器项

    public ArrayList<DriveItem> getDriveItemChildrenFoldersOfRootDrive(String rootDriveId){
    //gets the children folder driveI
    IDriveItemCollectionPage driveChildren= mGraphServiceClient.drives().byId(rootDriveId).root().children().buildRequest().get();
    ArrayList<DriveItem> results = new ArrayList<DriveItem>();
    results.addAll(driveChildren.getCurrentPage());
    return results;
}


我知道如果getNextPage返回null,那么就没有更多结果了,但是如果有一个页面,您是否必须进行另一个api调用才能获取下一页?如何使用上述设置进行操作?

最佳答案

同意布拉德。我在自己的身边进行了测试,并获得了成功。这是我的代码

public static void main(String[] args) {
    IGraphServiceClient client = GetClient();
    IDriveCollectionPage page = client.drives().buildRequest().get();
    List<Drive> drives = page.getCurrentPage();

    while(page.getNextPage() != null){
        page = page.getNextPage().buildRequest().get();
        drives.addAll(page.getCurrentPage());
    }

    System.out.println(drives.size());
}

07-24 19:23