google drive file.list 查询为子文件夹 ID 返回 false - php

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


[父文件夹] //“子文件夹”和“其他文件”正在列出

       └------[SUB FOLDER] //当我尝试将此文件夹 ID 作为父文件夹时,查询返回 false

       | └--------[文件位于子文件夹内]

       └------[其他文件]

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



函数 listFilesFolders($client, $search, $subFolderId){


        $service = new Google_Service_Drive($client);


        //位于谷歌驱动器根目录的文件夹ID

        //如果我使用此 ID 运行查询,则工作正常

        $superParentId = '1Xky058b134vadgSOyD-ADFagaGAGAdgha';


        //正常工作的查询

        //$query = "'".$superParentId."' 在父母和垃圾= false";


        //为位于父文件夹内的子文件夹运行的查询 ($superParentId)

        $query = "'".$subFolderId."' 在父母和垃圾= false";


        $optParams = array('q' => $query);


        // 将文件和文件夹列表作为对象返回

        $results = $service->files->listFiles($optParams);


        // 如果没有找到,则返回 false

        if (count($results->getFiles()) == 0) {

            返回假;

        }


        // 将数组转换为对象

        $结果 = 数组();

        foreach ($results->getFiles() as $file) {

            $result[$file->getId()] = $file->getName();

        }


        返回$结果;

}

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


ibeautiful
浏览 152回答 1
1回答

慕娘9325324

你需要做两件事找出您的超级父文件夹中的哪些文件是子文件夹您可以使用修改后的查询来完成:$query2 = "'$superParentId' in parents and trashed = false and mimeType='application/vnd.google-apps.folder'";... 循环列出这些子文件夹中包含的文件...$query3 = "'$subFolderId' in parents and trashed = false";...
打开App,查看更多内容
随时随地看视频慕课网APP