Reputation: 6676
I'm trying to follow Google's documentation here but I don't know how to get the file
paramter for the delete()
method. The "quickstart" example project doesn't show how to delete a file or reference file query results.
Can somebody please help me determine what should be passed into the delete() method below:
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 );
}
} );
Upvotes: 0
Views: 325
Reputation: 6676
Found the solution - MetaDataBuffer
is a collection of Metadata
objects from which I can get a DriveResource
object. The DriveResourceClient
interface can be used to delete the files (DriveResource
objects).
My code below will delete all HelloWorld.txt on my Google Drive:
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 );
}
} );
Upvotes: 2