在创建Google Drive文件夹到另一个文件夹时出错

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

我需要创建 GDrive 文件夹到另一个 GDrive 文件夹。

这就是代码。

private static String createDriveFolder(String folderName, String mainFolder, Drive service) throws IOException {
    File fileMetadata = new File();
    fileMetadata.setName(folderName);
    fileMetadata.setParents(Collections.singletonList(mainFolder));
    fileMetadata.setMimeType("application/vnd.google-apps.folder");

    File file = service.files().create(fileMetadata)
            .setFields("id, parent")
            .execute();
    System.out.println("Folder ID: " + file.getId());
    return file.getId();
}

我得到这个错误...

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "location" : "fields",
    "locationType" : "parameter",
    "message" : "Invalid field selection parent",
    "reason" : "invalidParameter"
  } ],
  "message" : "Invalid field selection parent"
}

请帮助我...

java google-drive-api
1个回答
2
投票

这个修改怎么样?我认为从错误信息来看,问题的原因是由于以下的值 fields.

发件人

.setFields("id, parent")

收件人:

.setFields("id, parents")

注意:

  • 请修改 parentparents. 在Google Drive,现阶段,一个文件和文件夹都有多个家长。所以,在Google Drive上,在当前阶段,一个文件和文件夹有多个父母,所以 parents 是用的。但我们可以看到下面的公告。参考

    从2020年9月30日开始,不再能将一个项目放在多个文件夹中,每个项目将只有一个位置。在新模式中,可以使用快捷键来组织多个层次的内容。Drive的文件夹结构和共享模型的这种简化将导致一些Google Drive API端点的行为方式发生变化。

    • 我不确定是否 parents 将改为 parent. 所以关于这一点,我想确认一下2020年9月30日之后驱动API的变化。

参考。

© www.soinside.com 2019 - 2024. All rights reserved.