Java 正在获取驱动器上现有目录的id
我正在尝试获取谷歌硬盘上现有目录的idJava 正在获取驱动器上现有目录的id,java,google-drive-api,Java,Google Drive Api,我正在尝试获取谷歌硬盘上现有目录的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, Objec
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());
}
这可能不是正确的id,因为我的google驱动器中有2个目录和3个文件。
我一定错过了什么,什么是获取现有目录id的正确方法
我已经看到了这个问题,若我能得到一个等价的java示例,那个将非常有帮助。我使用的是同一个帐户的google drive,它拥有该应用程序。将您的代码与您未调用的执行列表进行比较,我认为您正在迭代请求参数 它还说: folderId要列出根文件夹中的所有文件,请使用别名root作为folderId的值
因此,您可以跳过获取关于的信息。创建文件列表并进行迭代
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;
这应该可以。您确定正在使用最新的客户端库吗?这与谷歌如何列出文件的例子完全不同@DaImTo因为他使用的是children API:看起来文件是用来搜索内容的,而不是导航目录。是的,这很有效。但它似乎只能列出以编程方式创建的文件夹。是否可以列出通过驱动器UI创建的文件夹?
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;