Google Drive API v3- 在 Java 中的文件夹中创建一个文件夹

Google Drive API v3- create a folder inside a folder in Java

我正在尝试在 Java 中开发一种方法,该方法可以在 Google Drive 中的特定文件夹内创建一个文件夹,但是我在 Google 文档中找到的内容(https://developers.google.com/drive/api/v3/folder) 仅创建文件夹或将文件移动到文件夹。 任何帮助,将不胜感激!

只需使用 API 提供的创建文件夹和将文件插入文件夹的方法,然后将它们组合起来即可。

来自 API 网站:'The parents property can be used when creating a folder as well to create a subfolder.'

String folderId = "folderID";
File fileMetadata = new File();
fileMetadata.setName("Invoices");
fileMetadata.setParents(Collections.singletonList(folderId));
fileMetadata.setMimeType("application/vnd.google-apps.folder");

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

您需要先创建一个驱动服务。然后就可以调用createSubFolder方法了。

    // Build a new authorized API client service.
    final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
    Drive driveService = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
            .setApplicationName(APPLICATION_NAME)
            .build();

资源Link:https://developers.google.com/drive/api/v3/quickstart/java

在这里, 需要提供父文件夹的 ID。 并且必须给出子文件夹名称。

public String createSubFolder(String parentFolderId, String subFolderName) {
    System.out.println("Sub Folder Name: "+subFolderName);
    File file = null;
    try {
        File fileMetadata = new File();
        fileMetadata.setName(subFolderName);
        fileMetadata.setMimeType("application/vnd.google-apps.folder");
        if (parentFolderId != null) {
            List<String> parents = Arrays.asList(parentFolderId);
            fileMetadata.setParents(parents);
        }
        file = driveService.files().create(fileMetadata).setFields("id, name").execute();
        System.out.println("Folder ID: " + file.getId());
        return file.getId();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}