【问题标题】:Get list of files from a specific folder in google drive从谷歌驱动器中的特定文件夹中获取文件列表
【发布时间】:2021-12-01 12:50:54
【问题描述】:

我正在使用 Google Play 服务 SDK。

并尝试了来自开发者网站的Demos

有没有办法从特定文件夹获取(下载)所有文件?

任何指针都会有很大帮助。整个示例代码似乎并不完整。

【问题讨论】:

    标签: android google-drive-api google-drive-android-api


    【解决方案1】:

    这是执行类似操作的方法的“等待”版本(必须在非 UI 线程上运行)。

    //  list / search all non-trashed files in a folder (globally if 'fldr' is null) 
    GoogleApiClient _gac;
    public void findAll(String title, String mime, DriveFolder fldr) {
      ArrayList<Filter> fltrs = new ArrayList<Filter>();
      fltrs.add(Filters.eq(SearchableField.TRASHED, false));
      if (title != null)  
        fltrs.add(Filters.eq(SearchableField.TITLE, title));
      if (mime != null)  
        fltrs.add(Filters.eq(SearchableField.MIME_TYPE, mime));
      Query qry = new Query.Builder().addFilter(Filters.and(fltrs)).build(); 
      MetadataBufferResult rslt = (fldr == null) ? Drive.DriveApi.query(_gac, qry).await() : 
                                                   fldr.queryChildren(_gac, qry).await();
      if (rslt.getStatus().isSuccess()) {
        MetadataBuffer mdb = null;
        try { 
          mdb = rslt.getMetadataBuffer();
          if (mdb == null) return null;
          for (Metadata md : mdb) {
            if ((md == null) || (!md.isDataValid()) || md.isTrashed()) continue;
            // md gives you the file info    
          }
        } finally { if (mdb != null) mdb.close(); } 
      }
    }
    

    Github here 上有一堆关于同一主题的代码,但我有一段时间没碰过它(即没有保证)。

    【讨论】:

    • 我收到错误无法将过滤器解析为类型。是Filters吗?
    • 我离线,无法查看。该代码是很久以前为 ver.14 库编写的,并且可以正常工作。但是众所周知,谷歌员工会把地毯拉到你(我们)下面。对不起,太远了(在欧盟的某个地方),现在无法提供帮助。我记得,从头到尾,可能有一个不处理过滤器的“.list”方法。 grep Github 代码,那里可能有东西。
    • 在不同的 GitHub 区域 (github.com/seanpjanson/140319-Accounts/blob/master/GAC.java) 中还有一个 GAC 类,它可以做很多事情,你也许可以从那里挖出一些东西(我扔在那里只是为了展示我能写出多么糟糕的代码 :-) 享受吧。
    • 好的解决了。有一个问题,您的上述代码仅获取由我的应用程序创建的文件。使用 Web 或其他应用程序添加的任何其他文件均不可见。这是预期的吗?如何获取文件夹的所有文件(也由其他应用创建)。
    • GDAA(Google Drive Android Api)中唯一的作用域是文件。 GDAA 中有一个文件选择器可以规避这一点,但我对此知之甚少。查看 Cheryl Simon 在 SO (stackoverflow.com/users/234039/cheryl-simon) 上的回答以了解更多信息。
    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多