如何列出Google Drive文件夹内的所有文件、文件夹及其子文件和子文件夹
有没有什么好主意,能在一个查询中获取所有的子项以及子项的子项?
更新
这看起来是个简单的问题。我怀疑有没有简单的解决办法?
查询文件和文件夹的树状结构可能会消耗很多API调用。所以,为了解决我的问题,我使用一个查询来列出某个拥有者的所有文件和文件夹。这个查询还会返回子文件和子文件夹。为了在列表中找到某个文件夹及其所有子项(包括文件夹、文件、子文件夹和子文件),我不得不创建一个树状的索引。
结论
仅仅一个查询是不够的。你必须列出所有项,或者通过拥有者来缩小查询范围。接下来,你需要对结果进行索引,以便递归地找到该文件夹的树状结构。
如果有一个像Unix中的(ls -R)这样的查询选项就好了。
2 个回答
2
我正在尝试在PHP中做同样的事情。我的解决方案是:
- 从驱动器中获取完整的文件和文件夹列表。
- 对获取到的json数据进行双重循环(嵌套循环):
- 第一次循环遍历“items”数组中的元素,
- 第二次循环(递归)遍历每个元素的父级ID,
拒绝所有不包含我特定文件夹的父级ID列表中的元素。
别担心,这只是一次Google API的调用。剩下的工作都是在本地完成的。
1
我觉得你在“更新”中说得很对。把Drive看成是一个平面的东西,先把所有的内容列出来,然后再根据这些内容自己生成一个树状结构。