有没有办法像setMaxResults一样设置google个驱动文件的初始计数记录数?

Is there any way to set the initial count record number for google drive files just like setMaxResults?

service.files().list().setMaxResults(50)

和上面一样,有什么方法可以设置初始计数还是可以查询?

假设您有一个请求将 return 200 个文件。

通过将 maxResults 设置为 20,您将 return 每页 20 个文件,最终将有 10 页。然后,您可以使用 pageToken 请求其余文件。

Files.List request = service.files().list().setMaxResults(20);

    do {
      try {
        FileList files = request.execute();

        result.addAll(files.getItems());
        request.setPageToken(files.getNextPageToken());
      } catch (IOException e) {
        System.out.println("An error occurred: " + e);
        request.setPageToken(null);
      }
    } while (request.getPageToken() != null &&
             request.getPageToken().length() > 0);

您必须发出主要请求,然后设置遍历每个页面。没有办法说发出将 return 200 个文件然后只获取文件 101 - 120 的请求。

注意我不是java程序员,该示例是从文档files.list

中复制的

@daimTo 有正确答案。还有几点...

1/ "you will end up with 10 pages",实际上您最终会得到 至少 10 页,因为有些页面可能人烟稀少。

2/ 实现 OP 正在寻找的效果的最佳方法是:-

  1. 初始请求 20,指定 "fields=nextPageToken, items/id"。
  2. 验证结果中有 20 项。如果不是,则用 20 减去计数并用差值重复步骤 1。重复直到提取 20 个。
  3. 使用您要查找的任何 maxResults 进行查询,在给出的示例中再次为 20。与步骤 2 一样,请注意,您不能保证在单个页面中获得 20 个,因此您必须监视 nextPageToken。

当然,如果数字真的是20-40,实际上只请求40并忽略结果集中的前20项会更快。