Google drive api Google驱动器文件ID和文件夹ID约定

Google drive api Google驱动器文件ID和文件夹ID约定,google-drive-api,Google Drive Api,我希望得到谷歌驱动器中一个文件夹内的所有文件(给定初始文件夹ID),包括子文件夹内的所有文件。目前,我能够检索不包含任何子文件夹的文件夹中的所有文件,我正在尝试执行下一步,递归地查看子文件夹并获取其中的所有文件 我正在folderId上使用drive.children.list,并接收一个drive#childrence对象数组。不幸的是,这些对象不能直接告诉我它是文件夹还是文档,但我注意到folderid比fileid短得多 i、 e.下面的第一个对象是文件夹,第二个对象是文件。文件夹的id比

我希望得到谷歌驱动器中一个文件夹内的所有文件(给定初始文件夹ID),包括子文件夹内的所有文件。目前,我能够检索不包含任何子文件夹的文件夹中的所有文件,我正在尝试执行下一步,递归地查看子文件夹并获取其中的所有文件

我正在folderId上使用drive.children.list,并接收一个drive#childrence对象数组。不幸的是,这些对象不能直接告诉我它是文件夹还是文档,但我注意到folderid比fileid短得多

i、 e.下面的第一个对象是文件夹,第二个对象是文件。文件夹的id比文件短得多,但是没有任何东西可以帮助我区分每个对象是文件夹还是文件

[ { kind: 'drive#childReference',
       id: '0B2ecLLJU7rP3a2ZmVFZQVDdIRXM',
       selfLink: 'https://www.googleapis.com/drive/v2/files/0B2ecLLJU7rP3YXM0U2tOVm1wcVE/children/0B2ecLLJU7rP3a2ZmVFZQVDdIRXM',
       childLink: 'https://www.googleapis.com/drive/v2/files/0B2ecLLJU7rP3a2ZmVFZQVDdIRXM' },
     { kind: 'drive#childReference',
       id: '178rrwgIQxuoUgphvVYKppTM37PzT1yhzQOr9E1Shpf4',
       selfLink: 'https://www.googleapis.com/drive/v2/files/0B2ecLLJU7rP3YXM0U2tOVm1wcVE/children/178rrwgIQxuoUgphvVYKppTM37PzT1yhzQOr9E1Shpf4',
       childLink: 'https://www.googleapis.com/drive/v2/files/178rrwgIQxuoUgphvVYKppTM37PzT1yhzQOr9E1Shpf4' } ]
我真的希望我不必对每个对象发出另一个请求来确定它是文件夹还是文件。但我担心仅仅确定ID的长度太弱了。有人有什么建议吗?仅仅根据身份证的长度来确定是否安全

谢谢

给……打个电话

驱动器中的文件夹被视为具有元数据的特殊类型的文件。 这使您可以使用获取文件和文件夹的列表。 您可以使用
mimeType
判断项目是否为文件夹,该字段作为文件资源的一个字段返回


顺便说一句,强烈建议您进行api调用以按需浏览用户的文件夹。API调用很慢,一些重度用户可能会冻结您的应用程序。而且您很容易达到API使用限制。

仅根据id的长度进行确定是否安全?

没有

有人有什么建议吗?

一些建议

  • 对于每个子ID,获取其对象。我想这就是你试图避免做的事
  • 不要递归文件夹,而是对所有文件夹执行files.list查询,然后迭代它们以构建内存层次结构
  • 根据应用程序的不同,请记住文件可以有多个父文件。因此,folder1/folder2/folder3中的文件可以同时具有folder3和folder1作为父文件。然后,您只需查询folder1的所有子级即可获得所有文件
根据

文件夹是MIME类型为application/vnd.google-apps.folder且没有扩展名的文件

因此,您可以通过查看
File
对象的
mimeType
键来确定该对象是否为文件夹