【问题标题】:Enumerating folders and files using Google Drive SDK V2使用 Google Drive SDK V2 枚举文件夹和文件
【发布时间】:2013-02-22 18:26:59
【问题描述】:

我对@9​​87654321@ 有点困惑。

似乎有两种方法可以检索有关文件和文件夹的信息。

files.listchildren.list

使用files.list 我似乎无法将搜索范围缩小到特定文件夹中的文件,但使用children.list 只会返回非常基本的文件信息,例如ID。没有文件名。

看起来我必须检索一个孩子的列表,然后为每个孩子执行一个请求以找出它的文件名,这似乎非常低效。

使用 Google Drive 枚举文件夹及其内容的正常\正确方法是什么?

【问题讨论】:

    标签: android google-drive-api


    【解决方案1】:

    另一种方法是使用带有查询表达式的 files.list 来限制父级。

    q='id-of-parent' in parents 
    

    这将为您提供与子集合相同的结果,但包含每个项目的完整元数据。

    【讨论】:

    • 谢谢。我会试试看。
    【解决方案2】:

    +1 返回 children.list 的元数据(至少是文件名)

    【讨论】:

    • 使用 files.list 查询不再需要这个。
    【解决方案3】:

    更新 --

    现在可以使用files.list 来实现。您可以将q 参数与测试文件或文件夹的parents 的查询一起传递。

    q='MYFOLDERID' in parents
    

    更多搜索参数和选项以及示例在这里:https://developers.google.com/drive/search-parameters

    原答案 --

    是的,这是正确的。我们正在寻求改进此功能,但很遗憾您暂时无法使用此功能 - 抱歉。

    如果您要枚举所有文件和文件夹,更好的解决方案可能是获取一个平面列表,并在文件中使用parents 数组来生成层次结构。

    【讨论】:

    • 谢谢。我将暂时取消我的 GDrive 集成计划,直到 SDK 更加成熟。下载和缓存整个驱动器结构所需的带宽是移动设备上的一大障碍。如果您对此事有任何意见,请发布一个轻量级(最小依赖)的 Android SDK,允许我们将驱动器视为文件系统。即枚举文件\文件夹、删除、上传、下载等。当前的 SDK 很难使用。我想替换 Dropbox,但他们的 SDK 目前要好得多,它可以让我做我需要做的事情。
    【解决方案4】:

    如果您想获取驱动器中的所有文件夹,请使用:

    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());
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多