Sample code for 30+ languages & platforms
Perl

Delete All Files

See more Google Drive Examples

Permanently deletes all files owned by the user without moving it to the trash.

This example works by first getting a list of all fileIds, and then iterating over the list to delete each file.

See Google Drive Files delete for more information.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

$success = 1;

# It requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# This example uses a previously obtained access token having permission for the 
# Google Drive scope.

$gAuth = chilkat::CkAuthGoogle->new();
$gAuth->put_AccessToken("GOOGLE-DRIVE-ACCESS-TOKEN");

$rest = chilkat::CkRest->new();

# Connect using TLS.
$bAutoReconnect = 1;
$success = $rest->Connect("www.googleapis.com",443,1,$bAutoReconnect);

# Provide the authentication credentials (i.e. the access token)
$rest->SetAuthGoogle($gAuth);

# Get 10 results per page for testing.  (The default page size is 100, with a max of 1000.
$rest->AddQueryParam("pageSize","10");

$json = chilkat::CkJsonObject->new();

# Send the request for the 1st page.
$jsonResponse = $rest->fullRequestNoBody("GET","/drive/v3/files");

$pageNumber = 1;

$bContinueLoop = $rest->get_LastMethodSuccess() and ($rest->get_ResponseStatusCode() == 200);

$saFileIds = chilkat::CkStringArray->new();

while ($bContinueLoop == 1) {

    print "---- Page " . $pageNumber . " ----" . "\r\n";
    $json->Load($jsonResponse);

    $numFiles = $json->SizeOfArray("files");
    $i = 0;
    while ($i < $numFiles) {
        $json->put_I($i);
        $fileId = $json->stringOf("files[i].id");
        print "name: " . $json->stringOf("files[i].name") . "\r\n";
        print "id: " . $fileId . "\r\n";
        $saFileIds->Append($fileId);
        $i = $i + 1;
    }

    # Get the next page of files.
    # If the "nextPageToken" is present in the JSON response, then use it in the "pageToken" parameter
    # for the next request.   If no "nextPageToken" was present, then this was the last page of files.
    $pageToken = $json->stringOf("nextPageToken");
    $bContinueLoop = 0;
    $bHasMorePages = $json->get_LastMethodSuccess();
    if ($bHasMorePages == 1) {
        $rest->ClearAllQueryParams();
        $rest->AddQueryParam("pageSize","10");
        $rest->AddQueryParam("pageToken",$pageToken);
        $jsonResponse = $rest->fullRequestNoBody("GET","/drive/v3/files");
        $bContinueLoop = $rest->get_LastMethodSuccess() and ($rest->get_ResponseStatusCode() == 200);
        $pageNumber = $pageNumber + 1;
    }

}

# Before actually deleting, check for errors...
if ($rest->get_LastMethodSuccess() != 1) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

# A successful response will have a status code equal to 200.
if ($rest->get_ResponseStatusCode() != 200) {
    print "response status code = " . $rest->get_ResponseStatusCode() . "\r\n";
    print "response status text = " . $rest->responseStatusText() . "\r\n";
    print "response header: " . $rest->responseHeader() . "\r\n";
    print "response JSON: " . $jsonResponse . "\r\n";
    exit;
}

# OK, we have the full list of files.  Delete each..
$sbPath = chilkat::CkStringBuilder->new();
$numFiles = $saFileIds->get_Count();
$i = 0;
while ($i < $numFiles) {
    $fileId = $saFileIds->getString($i);

    $rest->ClearAllQueryParams();

    $sbPath->Clear();
    $sbPath->Append("/drive/v3/files/");
    $sbPath->Append($fileId);

    $jsonResponse = $rest->fullRequestNoBody("DELETE",$sbPath->getAsString());
    if ($rest->get_LastMethodSuccess() != 1) {
        print $rest->lastErrorText() . "\r\n";
        exit;
    }

    # A successful response will have a status code equal to 204 and the response body is empty.
    # (If not successful, then there should be a JSON response body with information..)
    if ($rest->get_ResponseStatusCode() != 204) {
        print "response status code = " . $rest->get_ResponseStatusCode() . "\r\n";
        print "response status text = " . $rest->responseStatusText() . "\r\n";
        print "response header: " . $rest->responseHeader() . "\r\n";
        print "response JSON: " . $jsonResponse . "\r\n";
        exit;
    }

    $i = $i + 1;
    print $i . ": Deleted " . $fileId . "\r\n";
}

print "All Files Deleted." . "\r\n";