Google drive api 什么';“这是通过”查找文件的正确方法;“完整路径”;在谷歌驱动器API v2中

Google drive api 什么';“这是通过”查找文件的正确方法;“完整路径”;在谷歌驱动器API v2中,google-drive-api,Google Drive Api,各位亲爱的 我正在尝试按“完整路径”查找文档列表。在阅读了API参考之后,这似乎是一项复杂的任务。假设我的路径类似于/path0/path1/path2/ 列出根文件夹的子文件夹,查找名称等于“path0”的所有子文件夹,并将它们放入列表“result0” 在“result0”中查找名称等于“path1”的项的所有子项,并将它们放入列表“result1” 在“result1”中查找名称等于“path2”的项的所有子项,然后 上述方法似乎效率很低,因为我的应用程序和驱动器之间需要多次交互。我知道G

各位亲爱的

我正在尝试按“完整路径”查找文档列表。在阅读了API参考之后,这似乎是一项复杂的任务。假设我的路径类似于/path0/path1/path2/

  • 列出根文件夹的子文件夹,查找名称等于“path0”的所有子文件夹,并将它们放入列表“result0”
  • 在“result0”中查找名称等于“path1”的项的所有子项,并将它们放入列表“result1”
  • 在“result1”中查找名称等于“path2”的项的所有子项,然后
  • 上述方法似乎效率很低,因为我的应用程序和驱动器之间需要多次交互。我知道Google Drive允许多个文件共享相同的文件名,即使在同一个文件夹中。如果我能做以下事情,它会很方便:

    listDocByFullPath("path0/path1/path2")
    
    这在当前版本的Google Drive SDK中可能吗?如果还没有,我想知道是否有比我在这里列出的更简单的方法

    顺便说一句,由于我的应用程序纯粹是一个后端服务,所以不可能使用谷歌提供的文件选择器


    干杯。

    与传统的文件系统不同,一个文件可以位于驱动器上的多个文件夹下。文件夹与标签非常相似。因此,传统的路径并不总是在我们的抽象范围内工作。我建议您遵循以下逻辑:

  • 列出父目录中q=
    'root',title='path0',mimeType='application/vnd.google apps.folder'
    的文件,然后选择第一个结果
  • 如果有匹配的结果,请获取文件夹的id,并在父文件夹和title='path1'和mimeType='application/vnd.google apps.folder'中使用
    ''执行另一个列表,然后选择第一个结果
  • 继续,直到到达目标文件夹

  • 最大的问题是路径不能唯一标识文件或文件夹!例如,在web UI中,可以创建两个与同一文件夹的子文件夹同名的文件夹。 i、 e.你可以制作一棵树,看起来像:
    
    根
    |-文件夹
    |-文件夹
    

  • 搜索/列出参数q设置为name=的字段,并包括参数为“files(mimeType、id、name、parents)”的字段
  • 如果只有一个搜索结果,请返回此文件
  • 否则,如果有多个文件,则获取父文件中的ID,并使用该ID的文件GETAPI,检查名称是否与路径中的最后一个片段匹配。如果只有一个父ID匹配,请选择该选项,否则选择匹配的父ID并检查路径中的下一个父元素

  • 基本上是自下而上检查

    我想看到一个服务来为我解析目的地id。嗨,Burcu谢谢你的回复。这正是我现在正在做的。现在看来还可以。虽然我担心未来的表现。我的应用程序和驱动器API之间的交互似乎随着目录深度的增加而线性增加。我提出的API确实可以简化这里的事情。干杯。@burcu dogan像这样的功能将来有没有机会加入api?当在Google Drive API端完成迭代时,性能应该会提高。你找到解决方案了吗?我面临着完全相同的问题。现在应该很容易了,请查看提供所有解决方案的示例应用程序