簡體   English   中英

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 站點:“創建文件夾時也可以使用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());

您需要先創建驅動服務。 然后你可以調用 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;
}

如果您想在共享驅動器中創建文件夾,您必須指定以下內容:

  • 驅動器 ID(到文件元數據)

  • 支持所有驅動器(到構建器鏈中的 files().create().setFields)

     private String createFolder(String folderName, String parent) throws IOException { System.out.println("Creating folder " + folderName + " in " + parent); File fileMetadata = new File(); fileMetadata.setParents(Arrays.asList(parent)); fileMetadata.setName(folderName); fileMetadata.setDriveId(DRIVE_ID); fileMetadata.setMimeType("application/vnd.google-apps.folder"); File file = drive.files().create(fileMetadata) .setSupportsAllDrives(true) .setFields("id") .execute(); System.out.println("created folder ID: " + file.getId()); return file.getId(); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM