通过Google Drive API v2中的"完整路径"查找文件的正确方法是什么

Jam*_*Gan 18 google-drive-api

亲爱的大家

我试图通过"完整路径"找到文档列表.在阅读API参考之后,这似乎是一项复杂的任务.假设我的路径类似于/ path0/path1/path2/...

  1. 列出根文件夹的子项并查找名称等于"path0"的所有子项并将它们放入列表"result0"
  2. 查找"result0"中项目的所有子项,其名称等于"path1",并将它们放入列表"result1"
  3. 在"result1"中查找项目的所有子项,其名称等于"path2"并且...

上面的方法看起来非常低效,因为它需要我的应用程序和Drive之间的多次交互.我了解Google Drive允许多个文件共享相同的文件名,即使在同一个文件夹中也是如此.如果我可以这样做,它会很方便:

listDocByFullPath("path0/path1/path2")
Run Code Online (Sandbox Code Playgroud)

这是否可以使用当前版本的Google Drive SDK?如果它还没有,我想知道是否有比我在这里列出的更简单的方法.

顺便说一句,由于我的应用程序纯粹是一种后端服务,因此无法使用Google提供的文件选择器.

干杯.

Bur*_*gan 16

与传统文件系统不同,文件可能位于Drive上的多个文件夹下.文件夹与标签非常相似.因此,传统路径并不总是在我们的抽象中起作用.我建议你遵循以下逻辑:

  1. 列出q =的文件'root' in parents and title = 'path0' and mimeType = 'application/vnd.google-apps.folder'并选择第一个结果.
  2. 如果存在匹配结果,请获取文件夹的ID并执行另一个列表'<id of path0>' in parents and title = 'path1' and mimeType='application/vnd.google-apps.folder'并选择第一个结果.
  3. 继续前进,直到到达目标文件夹.

  • 我想看一个服务来解决我的目的地ID. (5认同)
  • 嗨,Burcu感谢您的回复.这正是我现在正在做的事情.目前似乎还不错.虽然我担心未来的表现.我的应用程序和Drive API之间的交互似乎随着目录深度的增加而线性增加.我提出的API可以真正简化这里的事情.干杯. (4认同)

Reh*_*aja 5

最大的问题是路径不能唯一地标识文件或文件夹!例如,在Web UI中,您可以创建2个相同文件夹的子文件夹同名的文件夹。即,您可以使树看起来像: root |-somefolder |-somefolder