Como listar mais de 1000 registros da API do Google Drive V3 em C #
Esta é a continuação da pergunta original nesteligação.
Através do código abaixo, posso buscar 1000 registros, mas tenho um total de 6500 ++ na minha unidade. Pesquisando no Google, mas incapaz de descobrir a solução correta.
Conforme referência, o valor da descrição do Parâmetro "pageSize" é "O número máximo de arquivos a serem retornados por página. Os valores aceitáveis são de 1 a 1000, inclusive. (Padrão: 100)".
Então, significa que podemos obter apenas 1000 registros ou, se possível, qual é o caminho. Além disso, não entendo sobre o parâmetro "pageToken", qual é o uso do valor 'nextPageToken' em tempo real.
Código: (https://developers.google.com/drive/v3/web/quickstart/dotnet)
namespace gDrive
{
class Program
{
static string[] Scopes = { DriveService.Scope.DriveReadonly };
static string ApplicationName = "Drive API .NET Quickstart";
static void Main(string[] args)
{
UserCredential credential;
gDriveTableAdapter gDrive = new gDriveTableAdapter();
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
//Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Drive API service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define parameters of request.
FilesResource.ListRequest listRequest = service.Files.List();
listRequest.PageSize = 1000;
listRequest.Fields = "nextPageToken, files(webViewLink, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
.Files;
Console.WriteLine("Processing...\n");
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
gDrive.InsertQuery(file.Name, file.WebViewLink);
}
Console.WriteLine(files.Count + " records fetched.");
}
else
{
Console.WriteLine("No files found.");
}
Console.Read();
}
}
}