我正在尝试根据 driveId 和 folderId 检索特定文件夹。如果文件夹位于用户驱动器中,我可以通过其 ID 轻松检索文件夹,如下所示:
folder, err := srv.Files.Get(folderId).Do()
如果我传递的 folderId 是指共享驱动器中的一个文件夹,那么我会收到一条 404 消息,其中包含类似“googleapi:错误 404:找不到文件:1abcdefgh23456789., notFound”的消息。
理想情况下,我正在寻找类似的东西:
folder, err := srv.Files.Get(folderId).DriveId(driveId).Do()
但这失败了,因为没有这样的函数(“srv.Files.Get(folderId).DriveId undefined (type *drive.FilesGetCall 没有字段或方法 DriveId”)。
我试图通过使用更复杂的List
方法来解决这个问题:
res, err := srv.Files.List().Q("id = '" + folderId + "' and mimeType = 'application/vnd.google-apps.folder'").SupportsAllDrives(true).IncludeItemsFromAllDrives(true).Corpora("drive").DriveId(driveId).Do()
但这在运行时失败,并显示“googleapi:错误 400:无效值,无效”。我可以使用name = '<my folder name>'
,但这显然不好,因为可能有重复的名称。
通过 ID 获取共享驱动器中的文件夹的正确方法是什么?