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