Java 将多个文件上载到Google Drive?
在这里,我尝试在google drive应用程序文件夹中上载多个文件:Java 将多个文件上载到Google Drive?,java,android,Java,Android,在这里,我尝试在google drive应用程序文件夹中上载多个文件: @Override protected Boolean doInBackground(DriveFile...params) { Drive.DriveApi.requestSync(mGoogleApiClient).await(); DriveFile file = params[0]; try { DriveApi.DriveContentsResult driveConte
@Override
protected Boolean doInBackground(DriveFile...params) {
Drive.DriveApi.requestSync(mGoogleApiClient).await();
DriveFile file = params[0];
try {
DriveApi.DriveContentsResult driveContentsResult = file.open(
mGoogleApiClient, DriveFile.MODE_WRITE_ONLY, null).await();
if (!driveContentsResult.getStatus().isSuccess()) {
return false;
}
DriveContents driveContents = driveContentsResult.getDriveContents();
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(DbHelper.databasePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(driveContents.getOutputStream());
/*reading and writing data to and from file*/
int n = 0;
byte[] data = new byte[8 * 1024];
try {
while ((n = bufferedInputStream.read(data)) > 0) {
bufferedOutputStream.write(data, 0, n);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
com.google.android.gms.common.api.Status status =
driveContents.commit(mGoogleApiClient, null).await();
return status.getStatus().isSuccess();
}
return false;
}
当尝试上载两个文件时,
doInBackground
方法只被调用一次,并且只有一个文件被上载,这是文件数组列表中的最后一个文件。您需要发布调用doInBackground的完整代码。问题在于这部分代码
backupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
createFolderOnGoogleDrive();
multipleFilesArrayList = listFilePath();
createFileAsyncTask = new CreateFileAsyncTask();
multipleFilestoAsynchTask = multipleFilesArrayList.get(i);
createFileAsyncTask.execute(multipleFilesArrayList);
}); }
您需要发布调用doInBackground的完整代码。问题在于这部分代码
backupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
createFolderOnGoogleDrive();
multipleFilesArrayList = listFilePath();
createFileAsyncTask = new CreateFileAsyncTask();
multipleFilestoAsynchTask = multipleFilesArrayList.get(i);
createFileAsyncTask.execute(multipleFilesArrayList);
}); }
你能编辑一下你的帖子以澄清一下你的问题吗?你能编辑一下你的帖子以澄清一下你的问题吗?