我正在尝试在Google云端硬盘上获取现有目录的ID。
com.google.api.services.drive.model.About about = drive.about().get().execute();
com.google.api.services.drive.Drive.Children.List list =
drive.children().list(about.getRootFolderId());
Iterator<Entry<String, Object>> itr = list.entrySet().iterator();
Entry<String, Object> s;
while (itr.hasNext()) {
s = itr.next();
System.out.println(s.getKey() + "::" + s.getValue());
}
现在这段代码正在提供输出 -
folderId::0APcEBFk-CF2pUk9PVA
这可能不是正确的ID,因为我在谷歌硬盘中有2个目录和3个文件。 我必须遗漏一些东西,以正确的方式获得现有目录的身份。
我已经看到了this的问题,如果我能得到一个等效的java示例,那将会有所帮助。我使用的是同一个帐户的谷歌硬盘,它拥有该应用程序。
答案 0 :(得分:0)
将您的代码与您execute()
上没有调用list
的{{3}}进行比较,我认为您正在迭代请求参数。
它也说:
folderId
要列出根文件夹中的所有文件,请使用别名root
作为folderId
的值。
因此您可以跳过About
。
答案 1 :(得分:0)
创建文件列表并迭代。
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential1).build();
String query = "'" + about.getRootFolderId() +"' " + "in parents";
List<File> files = service.files().list().setQ(query).execute().getItems();
return files;
应该这样做。