我正在学习用于在Android上上传文件的Google Api,并且确实找到了关于它的好样本。您可以在此处查看该示例:https://github.com/sdivakarrajesh/Uploading-Files-to-Google-drive-using-java-client-api-in-Android/blob/master/app/src/main/java/com/dev/theblueorb/usingdrivejavaapi/DriveActivity.java( 但是,它只显示如何上传文件,而不是如何选择文件并将其上传到GG驱动器。以下是在GG驱动器上上传和创建文件夹的代码:
private void uploadFile() throws IOException {
File fileMetadata = new File();;
fileMetadata.setName("Sample File");
fileMetadata.setMimeType("application/vnd.google-apps.spreadsheet");
// For mime type of specific file visit Drive Doucumentation
file2 = new java.io.File(path);
InputStream inputStream = getResources().openRawResource(R.raw.template);
try {
FileUtils.copyInputStreamToFile(inputStream,file2);
} catch (IOException e) {
e.printStackTrace();
}
FileContent mediaContent = new FileContent("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",file2);
File file = mService.files().create(fileMetadata, mediaContent)
.setFields("id")
.execute();
Log.e(this.toString(),"File Created with ID:"+ file.getId());
Toast.makeText(getApplicationContext(),
"File created:"+file.getId() , Toast.LENGTH_SHORT).show();
}
}
private void createFolderInDrive() throws IOException {
File fileMetadata = new File();
fileMetadata.setName("Sample Folder");
fileMetadata.setMimeType("application/vnd.google-apps.folder");
File file = mService.files().create(fileMetadata)
.setFields("id")
.execute();
System.out.println("Folder ID: " + file.getId());
Log.e(this.toString(),"Folder Created with ID:"+ file.getId());
Toast.makeText(getApplicationContext(),
"Folder created:"+file.getId() , Toast.LENGTH_SHORT).show();
}
任何机构都知道如何在设备上选择文件,然后将其上传到GG驱动器上的选定文件夹或示例?
参考这些文档进行基本文件上传,您应该能够通过指定完整的文件路径来"选择设备上的文件",如下行fileName
:
java.io.File fileContent = new java.io.File(filename);
.
例如,如果在目录 media
中有一个名为 coolpic
的文件,则可以对filename
使用 media/coolpic
。我引用的下一个文档强化了这一策略。路径将取决于根位置,这是您可以轻松调查的。
然后,查看此文档以处理Google云端硬盘中的文件夹。您需要找到文件夹 ID 并在上传时使用进行设置
fileMetadata.setParents(Collections.singletonList(folderId));
然后分两步移动,或者使用我上面的方法并在上传时设置文件夹。