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

时间:2018-11-30 17:13:38

标签: java google-api google-drive-api google-api-java-client

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

2 个答案:

答案 0 :(得分:0)

只需使用API​​为您提供的创建文件夹并将文件插入文件夹并将其组合的功能即可。

在API站点中:'parents属性在创建文件夹以及创建子文件夹时也可以使用。'

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());

答案 1 :(得分:0)

您需要首先创建驱动器服务。然后,您可以调用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();

资源链接: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;
}