我只想使用Java API(v3)从Google驱动器中查询顶级文件。 (在顶层,我的意思是我不想递归地进入文件夹)
我检查了this question,但是它似乎没有合适的解决方案(即使它具有可接受的解决方案)。
我尝试了几件事:
1)我尝试设置查询
// this gives the shared files, but gives all files, not just the top files
Files.List request = drive.files().list().setQ("sharedWithMe = true");
2)我读到某处与我共享的顶级文件没有任何父文件,因此我尝试获取没有任何父文件的文件
与“我的云端硬盘”文件的父目录中的“ root”类似,我尝试了以下几个查询:
drive.files().list().setQ("sharedWithMe = true and null in parents");
drive.files().list().setQ("sharedWithMe = true and parents = null");
但它们似乎无效。
3)我尝试获取所有文件,然后尝试仅选择没有父文件的文件。
Files.List request = drive.files().list()
.setQ("sharedWithMe = true)
.setFields("nextPageToken, files(id, name, parents)");
即使在输出字段中包含父项之后,File.getParents()也会提供NULL(即使对于具有父项的文件也是如此)。
题 :
有没有办法通过Files.list()获取每个文件的父母信息?
有没有一种方法可以使文件与我的文件夹共享的顶级文件?(通过添加一些查询以及sharedWithMe = true)
最佳答案
使用Google Drive API V3中的以下代码,我只能获得与我共享的根级别文件的列表。
首先使用以下代码获取与我共享的文件和文件夹
FileList sharedWithMeResult = drive.files().list().setQ("sharedWithMe=true").execute();
要筛选出文件夹,您可以
List<com.google.api.services.drive.model.File> sharedWithMeFiles = sharedWithMeResult.getFiles();
for (com.google.api.services.drive.model.File file : sharedWithMeFiles)
{
if(file.getMimeType().contains("vnd.google-apps.folder"))
continue;
else
System.out.println("Shared File Name = " + file.getName());
}
关于java - 从Google Drive V3 Java API中检索与我共享的顶级文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44090344/