【问题标题】:How to list all files, folders, subfolders and subfiles of a Google drive folder如何列出 Google Drive 文件夹的所有文件、文件夹、子文件夹和子文件
【发布时间】:2013-02-07 14:48:37
【问题描述】:

任何想法如何在单个查询中查询所有孩子和孩子的孩子?

更新

这似乎是一个简单的问题。我怀疑是否有一个简单的解决方案?

查询文件夹和文件树可能会花费大量 API 调用。 因此,为了解决我的问题,我使用单个查询来列出所有者的所有文件和文件夹。此查询还返回子文件和子文件夹。要在列表中找到文件夹及其所有子文件夹(文件夹、文件、子文件夹和子文件),我必须创建一个类似索引的树。

结论

单个查询是不够的。您必须列出所有或缩小与所有者的查询。接下来您必须索引结果以(递归)找到文件夹的树。

像 (ls -R in Unix) 这样的查询选项会很好。

【问题讨论】:

  • 你尝试了什么?你检查developers.google.com/drive/v2/reference/files/list了吗?
  • 很多。但我无法在单个查询中解决它。与所有者一起使用列表查询给我很多结果,也来自其他文件夹。
  • 该页面包含一个明确的示例。
  • 我需要特定驱动器文件夹中的子项和子项的子项。还是我忽略了什么?

标签: python python-2.7 google-drive-api


【解决方案1】:

我正在尝试在 PHP 中做同样的事情。我的解决方案是:

  1. 从驱动器中检索文件和文件夹的完整列表
  2. 对检索到的 json 进行两次迭代(嵌套):
    • “items”数组中的第一个元素,
    • 每个元素的父 ID 的第二个(递归),

拒绝在其父 ID 列表中不包含我的特定文件夹 ID 的所有元素。
不用担心,这只是一个 Google API 调用。剩下的工作是本地的。

【讨论】:

  • 感谢您的评论。我在 Python 中使用相同的方法。
【解决方案2】:

我认为您在“更新”中的想法是正确的。将 Drive 视为平面,调用列出所有内容,并从中生成您自己的树。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多