首页 > 解决方案 > 尽管文件存在于谷歌驱动器上,但谷歌驱动器 API v3 找不到文件

问题描述

有人与我共享了一个文件夹。此文件夹位于“与我共享”部分下。我们将其命名为“SF1”(共享文件夹 1)。此文件夹包含第一级的子文件夹。让我们将其命名为“SUB1”(子文件夹 1) 文件夹 SUB1 包含我要下载的图像。我编写了一个可以正常工作但在一种条件下工作的代码。条件是我必须从 Google Drive Page 访问(预览)文件。例如,假设 SUB1 包含 20 个图像。对于下面的代码,Google Drive 将返回 1 个文件。

FileListRequest.PageSize = 10;
FileListRequest.Q = "parents in 'GOOGLE_FOLDER_ID'";
FileListRequest.Fields = "nextPageToken, files(*)";
IList<Google.Apis.Drive.v3.Data.File> files = FileListRequest.Execute().Files;

经过大量搜索后的共鸣很简单。它总是返回 SUB1 中存在的第一个文件。它假定我可以“访问”它。

如果我为下一个文件进行“预览”,假设 10 个文件,相同的代码将返回此目录中存在的11 个图像,尽管存在 20 个图像。

请注意,目录详细信息是“主”搜索。如果我根据文件类型更改它,例如

FileListRequest.Q = "mimeType = 'image/jpeg' and parents in 'GOOGLE_FOLDER_ID'";

甚至

FileListRequest.Q = "mimeType = 'image/jpeg'";

结果是一样的。如果我不对该文件执行操作,API 将无法识别它。API“不存在”。即使我尝试仅通过名称检索它:

FileListRequest.Q = "name = 'sample-photo.jpg'";

但如果我将使用“sample-photo.jpg”进行操作,例如从 Google Drive Page 预览,API 将返回文件,其代码与之前没有返回任何内容的代码相同。

是否有我必须分配/声明的参数?它是API的错误吗?我对与我共享的这个文件夹的权限只是查看和下载而不是编辑/上传

标签: google-drive-api

解决方案


推荐阅读