2017-01-14 8 views
1

Hier versuche ich mehrere Dateien auf Google Drive-App Ordner hochladen:Mehrere Dateien auf Google Drive hochladen?

@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; 
} 

Beim Versuch laden zwei Dateien die doInBackground Methode wird aufgerufen, nur einmal und nur eine Datei wird hochgeladen, die in einer Arraylist von Dateien zuletzt ist .

+1

Könnten Sie bitte Ihren Beitrag bearbeiten, um Ihre Frage ein wenig zu klären? –

Antwort

0

Sie müssen den vollständigen Code posten, der den doInBackground aufruft. Das Problem ist mit diesem Teil des Codes.

backupBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

      createFolderOnGoogleDrive(); 
      multipleFilesArrayList = listFilePath(); 
      createFileAsyncTask = new CreateFileAsyncTask(); 
      multipleFilestoAsynchTask = multipleFilesArrayList.get(i); 
      createFileAsyncTask.execute(multipleFilesArrayList); 

     });   } 
Verwandte Themen