Go
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
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()