我对v2 Google Drive SDK感到有些困惑。
似乎有两种方法可以检索有关文件和文件夹的信息。
使用files.list
我似乎无法将搜索范围缩小到特定文件夹中的文件,但使用children.list
仅返回非常基本的文件信息,例如ID。没有文件名。
看起来我必须检索一个子列表,然后为每个孩子执行一个请求,找出它的文件名,这看起来非常低效。
使用Google云端硬盘枚举文件夹及其内容的正常\正确方法是什么?
答案 0 :(得分:2)
更新 -
现在可以使用files.list
来实现。您可以使用查询测试文件或文件夹的q
来传递parents
参数。
q='MYFOLDERID' in parents
此处有更多搜索参数,选项和示例:https://developers.google.com/drive/search-parameters
原始回答 -
是的,这是正确的。我们正在寻求改进此功能,但不幸的是你现在仍然坚持这一点 - 抱歉。
如果您想要所有文件和文件夹,更好的解决方案可能是获取一个平面列表,并使用文件中的parents
数组来生成层次结构。
答案 1 :(得分:2)
答案 2 :(得分:2)
替代方法是使用带有查询表达式的files.list来限制父级。
q='id-of-parent' in parents
这将为您提供与子集合相同的结果,但具有每个项目的完整元数据。
答案 3 :(得分:1)
如果您想要使用驱动器中的所有文件夹:
FileList folders=service.files().list().setQ("mimeType='application/vnd.google-apps.folder'").execute();
for(File fl: folders.getItems()){
Log.v(TAG+" fOLDER name:",fl.getTitle());
}