17

我正在尝试构建一个 Web UI,供用户导航他/她的 Google Drive 并选择一个或多个文档,以便稍后在数据库中的网站中引用。我目前正在使用 PHP 构建 Web 界面。

我面临的问题是我找不到一个函数来按文件夹 ID 获取文件列表。

我尝试使用:

$service->children->listChildren($rootFolderId)

…但这只会给出文件夹中文件的文件引用ID(所谓的子资源项),这意味着我必须遍历这些文件并为每个文件创建一个调用以获取所有元数据我需要我的用户界面。

很遗憾..

$service->files->list()

..将列出我所有的文件,没有按文件夹过滤选项。

我想知道是否有一种有效的方法可以从对 Drive 服务器的一次调用中提取文件夹文件列表。我实际上记得能够通过旧的 Google DOC API 执行此任务。

非常感谢您的帮助

4

4 回答 4

31

注意这个答案使用 v2 API。新应用程序应写入 v3 API。

现在可以使用 drive.files.list 端点列出属于特定文件夹的文件。

为此,您可以使用?q=查询参数,如下所示:

GET https://www.googleapis.com/drive/v2/files?q="'<FOLDER_ID>' in parents"

在 PHP 中,这将是

$service->files->list(array('q' => "'<FOLDER_ID>' in parents"));
于 2012-07-11T21:32:50.497 回答
3

查询参数是否会   <FOLDER_ID> in parents   列出父级中具有此类 <FOLDER_ID> 的文件和/或文件夹?
在我看来,- 这是预期的结果。我问这个问题是因为,在上面的答案中,有人写道:

...列出属于特定文件夹的文件

关于搜索参数的文档解释说:

这将查找ID 为 1234567 的父文件夹的所有子文件夹。

我将补充一点,可以通过向
and mimeType='application/vnd.google-apps.folder'
查询字符串添加类似内容来返回仅文件夹列表。

于 2012-07-16T22:45:02.617 回答
1
于 2013-06-27T09:15:08.553 回答
1

现在很容易,不用担心。如果您想从特定文件夹中获取所有文件和文件夹,那么只需将此代码复制并粘贴到您的项目中,它将从特定文件夹中检索所有文件和文件夹。注意:您应该有自己的文件夹 ID

 List<File> result = new ArrayList<File>();
    Files.List request = null;

    try {
          request = mService.files().list();//plz replace your FOLDER ID in below line
          FileList files = request.setQ("'"+MyFoler_Id+"' in parents and trashed=false"").execute();
          result.addAll(files.getItems());          
          request.setPageToken(files.getNextPageToken());
        } 
      catch (IOException e)
      {
        System.out.println("An error occurred: " + e);
        request.setPageToken(null);
      }

//打印出我们检索到的文件和文件夹标题。

  for(File f:result)
  {
      System.out.println("My recvd data "+f.getTitle());
  }
于 2014-04-03T10:18:59.393 回答