2017-11-28 7 views
0

Ich versuche, Googles Dokumentation here zu folgen, aber ich weiß nicht, wie man den file Parameter für die delete() Methode erhält. Im Beispielprojekt "Quickstart" wird nicht gezeigt, wie die Abfrageergebnisse einer Datei oder einer Referenzdatei gelöscht werden.Google Drive API: Wie lösche ich eine Datei?

Kann mir helfen, bitte jemand zu bestimmen, was in die delete() Methode, die unten übergeben werden soll:

final String sFilename = "HelloWorld.txt"; 

    Query query = new Query.Builder() 
      .addFilter(Filters.eq(SearchableField.TITLE, sFilename)) 
      .build(); 

    Task<MetadataBuffer > queryTask = client.query(query); 

    queryTask 
      .addOnSuccessListener(this, 
        new OnSuccessListener<MetadataBuffer>() 
        { 
         @Override 
         public void onSuccess(MetadataBuffer metadataBuffer) 
         { 
         Log.i(TAG, "FOUND file: " + sFilename); 

         client.delete(/* WHAT GOES IN HERE? */); 
         } 
        }) 
      .addOnFailureListener(this, new OnFailureListener() 
      { 
       @Override 
       public void onFailure(@NonNull Exception e) 
       { 
       Log.i(TAG, "ERROR: File not found: " + sFilename); 
       } 
      }); 

Antwort

1

die Lösung gefunden - MetaDataBuffer ist eine Sammlung von Metadata Objekten, aus denen ich ein DriveResource Objekt bekommen kann. Die Schnittstelle DriveResourceClient kann zum Löschen der Dateien (DriveResource Objekte) verwendet werden.

Mein Code unten wird alle HelloWorld.txt auf meinem Google Drive löschen:

final String sFilename = "HelloWorld.txt"; 

Query query = new Query.Builder() 
     .addFilter(Filters.eq(SearchableField.TITLE, sFilename)) 
     .build(); 

Task<MetadataBuffer > queryTask = client.query(query); 

queryTask.addOnSuccessListener(this, 
     new OnSuccessListener<MetadataBuffer>() 
     { 
      @Override 
      public void onSuccess(MetadataBuffer metadataBuffer) 
      { 
      for(Metadata m : metadataBuffer) 
      { 
       DriveResource driveResource = m.getDriveId().asDriveResource(); 

       Log.i(TAG, "Deleting file: " + sFilename + " DriveId:(" + m.getDriveId() + ")"); 
       client.delete(driveResource); 
      } 

      } 
     }) 
     .addOnFailureListener(this, new OnFailureListener() 
     { 
      @Override 
      public void onFailure(@NonNull Exception e) 
      { 
      Log.i(TAG, "ERROR: File not found: " + sFilename); 
      } 
     });