Google Drive File.list 查询为子文件夹 ID - php 返回 false



我可以使用以下功能列出位于Google云端硬盘根目录中的文件夹中存在的项目。 但是当我尝试列出位于父文件夹内的子文件夹中的项目时(父文件夹位于Google云端硬盘的根目录中(

[父文件夹]//列出"子文件夹"和"其他文件"  └------[子文件夹]//查询返回错误,当我尝试将此文件夹 ID 作为父文件夹 ID 时返回  |           └--------[位于子文件夹内的文件]  └------[其他文件]

用于列出谷歌云端硬盘文件的功能:

函数列表文件文件夹($client, $search, $subFolderId({ $service = 新Google_Service_Drive($client(; 位于谷歌云端硬盘根目录下的文件夹的ID 如果我使用此ID运行查询,则可以正常工作 $superParentId = '1Xky058b134vadgSOyD-ADFagaGAGAdgha'; 正常工作的查询 $query = "'".$superParentId."' 在父母和垃圾 = 假"; 对位于父文件夹内的子文件夹运行的查询 ($superParentId( $query = "'".$subFolderId."' 在父母和垃圾 = 假"; $optParams = 数组('q' => $query(; 将文件和文件夹的列表作为对象返回 $results = $service->files->listFiles($optParams(; 如果未找到任何内容,则返回 false if (count($results->getFiles((( == 0( { 返回假; } 将数组转换为对象 $result = 数组((; foreach ($results->getFiles(( as $file( { $result[$file->getId((] = $file->getName((; } 返回$result; }

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

谢谢

你需要做两件事

  1. 找出超级父文件夹中的哪些文件是子文件夹 您可以使用修改后的查询来执行此操作:
$query2 = "'$superParentId' in parents and trashed = false and mimeType='application/vnd.google-apps.folder'";
... 
  1. 循环列出这些子文件夹中包含的文件
...
$query3 = "'$subFolderId' in parents and trashed = false";
...

最新更新