Sample code for 30+ languages & platforms
Go

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 Go Downloads

Go
    success := false

    success = true

    // 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.NewAuthGoogle()
    gAuth.SetAccessToken("GOOGLE-DRIVE-ACCESS-TOKEN")

    rest := chilkat.NewRest()

    // Connect using TLS.
    bAutoReconnect := true
    success = rest.Connect("www.googleapis.com",443,true,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.NewJsonObject()
    var i int
    var numFiles int

    // Send the request for the 1st page.
    jsonResponse := rest.FullRequestNoBody("GET","/drive/v3/files")

    pageNumber := 1
    var pageToken *string = new(string)
    bContinueLoop := rest.LastMethodSuccess() && (rest.ResponseStatusCode() == 200)

    var fileId *string = new(string)
    saFileIds := chilkat.NewStringArray()

    for bContinueLoop == true {

        fmt.Println("---- Page ", pageNumber, " ----")
        json.Load(*jsonResponse)

        numFiles = json.SizeOfArray("files")
        i = 0
        for i < numFiles {
            json.SetI(i)
            fileId = json.StringOf("files[i].id")
            fmt.Println("name: ", *json.StringOf("files[i].name"))
            fmt.Println("id: ", *fileId)
            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 = false
        bHasMorePages := json.LastMethodSuccess()
        if bHasMorePages == true {
            rest.ClearAllQueryParams()
            rest.AddQueryParam("pageSize","10")
            rest.AddQueryParam("pageToken",*pageToken)
            jsonResponse = rest.FullRequestNoBody("GET","/drive/v3/files")
            bContinueLoop = rest.LastMethodSuccess() && (rest.ResponseStatusCode() == 200)
            pageNumber = pageNumber + 1
        }

    }

    // Before actually deleting, check for errors...
    if rest.LastMethodSuccess() != true {
        fmt.Println(rest.LastErrorText())
        gAuth.DisposeAuthGoogle()
        rest.DisposeRest()
        json.DisposeJsonObject()
        saFileIds.DisposeStringArray()
        return
    }

    // A successful response will have a status code equal to 200.
    if rest.ResponseStatusCode() != 200 {
        fmt.Println("response status code = ", rest.ResponseStatusCode())
        fmt.Println("response status text = ", rest.ResponseStatusText())
        fmt.Println("response header: ", rest.ResponseHeader())
        fmt.Println("response JSON: ", *jsonResponse)
        gAuth.DisposeAuthGoogle()
        rest.DisposeRest()
        json.DisposeJsonObject()
        saFileIds.DisposeStringArray()
        return
    }

    // OK, we have the full list of files.  Delete each..
    sbPath := chilkat.NewStringBuilder()
    numFiles = saFileIds.Count()
    i = 0
    for 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.LastMethodSuccess() != true {
            fmt.Println(rest.LastErrorText())
            gAuth.DisposeAuthGoogle()
            rest.DisposeRest()
            json.DisposeJsonObject()
            saFileIds.DisposeStringArray()
            sbPath.DisposeStringBuilder()
            return
        }

        // 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.ResponseStatusCode() != 204 {
            fmt.Println("response status code = ", rest.ResponseStatusCode())
            fmt.Println("response status text = ", rest.ResponseStatusText())
            fmt.Println("response header: ", rest.ResponseHeader())
            fmt.Println("response JSON: ", *jsonResponse)
            gAuth.DisposeAuthGoogle()
            rest.DisposeRest()
            json.DisposeJsonObject()
            saFileIds.DisposeStringArray()
            sbPath.DisposeStringBuilder()
            return
        }

        i = i + 1
        fmt.Println(i, ": Deleted ", *fileId)
    }

    fmt.Println("All Files Deleted.")

    gAuth.DisposeAuthGoogle()
    rest.DisposeRest()
    json.DisposeJsonObject()
    saFileIds.DisposeStringArray()
    sbPath.DisposeStringBuilder()