public async Task ExecuteAsync() { UserCredential credentials = await _authenticator.AuthorizeAsync(DriveService.Scope.Drive); // Create Drive API service. DriveService service = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credentials, ApplicationName = _configuration["ApplicationName"] }); // Define parameters of request. FilesResource.ListRequest listRequest = service.Files.List(); listRequest.PageSize = 5; listRequest.Q = "trashed = false and mimeType != 'application/vnd.google-apps.folder'"; listRequest.Fields = "nextPageToken, files(id, name, kind, md5Checksum, originalFilename, size, mimeType, parents)"; FileList fileList = null; do { listRequest.PageToken = fileList?.NextPageToken; fileList = await listRequest.ExecuteAsync(); if (fileList?.Files == null) { continue; } List <Task> tasks = new List <Task>(); foreach (File file in fileList.Files) { string fullName = await GetFileFullNameAsync(file, service); GoogleDriveFile googleDriveFile = new GoogleDriveFile(file.Id, file.Name, fullName, file.Md5Checksum, file.Size ?? 0); tasks.Add(_googleDriveFileTask.ExecuteAsync(googleDriveFile)); } await Task.WhenAll(tasks); } while (fileList != null && !string.IsNullOrEmpty(fileList.NextPageToken)); }