Google云端硬盘queryForFilesList未返回任何结果

时间:2014-04-22 20:30:22

标签: ios google-drive-api google-oauth

我目前在使用iOS Google Drive SDK时遇到问题。我使用GTLQueryDrive queryForFilesList在我的Google云端硬盘中搜索文件。我想要的所有文件都有一个格式为 directory-name / file-name 的路径。由于SDK / API不允许使用完整路径搜索文件,因此我使用以下查询最终获得它的downloadUrl。我使用以下格式的查询:

((title = 'directory-name') AND ('root' in parents) AND (mimeType = 'application/vnd.google-apps.folder')) OR
((title = 'file-name') AND (not 'root' in parents) AND (mimeType != 'application/vnd.google-apps.folder'))

第一行用于查找根目录中名称与我的匹配的所有目录,第二行应匹配具有相同名称的所有文件。这应该返回我正在寻找的目录,我正在寻找的文件,以及其他一些东西(例如在其他目录中具有相同名称的文件)。我有一些代码来确定哪个文件是正确的。

我遇到的问题是,有时我从查询中得不到任何结果。这通常发生在重命名文件,重命名后或其他类似的事情之后。奇怪的是,如果我独立地运行查询的两行中的任何一行,它就会正确返回,但它们一起不会。

非常感谢任何帮助,如果需要,我很乐意提供更多信息。

是的,我正在使用kGTLAuthScopeDrive范围。

理想的解决方案是,如果我可以使用完整路径进行搜索,那么如果有办法做到这一点,那么我就不知道了。

1 个答案:

答案 0 :(得分:0)

不幸的是,我无法让它发挥作用。而且遗憾的是,Google不提供查询完整路径的API。所以我使用迭代路径来获取目录ID,然后当我到达文件时,获取其ID并下载它。虽然稍微复杂一点,但我的解决方案基于这个问题并选择了答案:What's the right way to find files by "full path" in Google Drive API v2