Google驱动器file.list查询返回假的子文件夹ID-php

问题描述 投票:0回答:1

我可以使用以下功能列出位于Google驱动器根目录中的文件夹中的项目。但是当我尝试列出位于父文件夹内的子文件夹中的项目时(父文件夹位于google驱动器的根目录中)

[PARENT FOLDER] //列出“子文件夹”和“其他文件”└------ [SUB FOLDER] //当我尝试将此文件夹ID设置为父级时,查询返回false| └-------- [位于子文件夹中的文件]└------ [其他文件]

用于从Google驱动器列出文件的功能:

函数listFilesFolders($ client,$ search,$ subFolderId){$ service =新的Google_Service_Drive($ client);//位于Google驱动器根目录中的文件夹的ID//如果我使用此ID运行查询,效果很好$ superParentId ='1Xky058b134vadgSOyD-ADFagaGAGAdgha';//正确的查询/// $ query =“'”。$ superParentId。“'在父母中被删除= false”;//针对位于父文件夹($ superParentId)内的子文件夹运行的查询$ query =“'”。$ subFolderId。“'在父母中被删除= false”;$ optParams = array('q'=> $ query);//返回文件和文件夹列表作为对象$ results = $ service-> files-> listFiles($ optParams);//如果找不到任何内容,则返回false如果(count($ results-> getFiles())== 0){返回false;}//将数组转换为对象$ result = array();foreach($ results-> getFiles()as $ file){$ result [$ file-> getId()] = $ file-> getName();}返回$ result;}

我可以知道如何列出子文件夹中的文件吗?

谢谢,

php google-drive-api google-oauth google-api-php-client
1个回答
0
投票
找出超级父文件夹中的哪个文件是子文件夹您可以使用修改后的查询来做到这一点:

$query2 = "'$superParentId' in parents and trashed = false and mimeType='application/vnd.google-apps.folder'"; ...

  1. 循环列出这些子文件夹中包含的文件
  2. ...
    $query3 = "'$subFolderId' in parents and trashed = false";
    ...
    
© www.soinside.com 2019 - 2024. All rights reserved.