Baixando um arquivo do Google Drive
Até agora nós já vimos como listar arquivos no Google Drive e como criar e deletar pastas e arquivos. O que é que está faltando? O download de arquivos! Esse é um dos procedimentos mais tranquilos de serem feitos com a API do Google Drive. Nós só temos que criar um request com o método “Files.Get” passando o “id” do arquivo a ser baixado e, em seguida, chamamos o método “Download” passando a “Stream” onde o arquivo deverá ser salvo. Veja só como é simples:
1
2
3
4
5
6
7
8
9
10
11
12
13
| // C# private static void Download(Google.Apis.Drive.v3.DriveService servico, string nome, string destino) { var ids = ProcurarArquivoId(servico, nome); if (ids != null && ids.Any()) { var request = servico.Files.Get(ids.First()); using ( var stream = new System.IO.FileStream(destino, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { request.Download(stream); } } } |
1
2
3
4
5
6
7
8
9
10
| ' VB.NET Private Sub Download(Servico As Google.Apis.Drive.v3.DriveService, Nome As String , Destino As String ) Dim Ids = ProcurarArquivoId(Servico, Nome) If Ids IsNot Nothing AndAlso Ids.Any() Then Dim Request = Servico.Files.[ Get ](Ids.First()) Using Stream = New System.IO.FileStream(Destino, System.IO.FileMode.Create, System.IO.FileAccess.Write) Request.Download(Stream) End Using End If End Sub |
Para baixarmos o “arquivo.txt” que fizemos o upload na seção anterior, a chamada ficaria assim:
1
2
3
4
5
6
| // C# Console.Clear(); Console.WriteLine( "Download" ); Download(servico, "arquivo.txt" , "arquivoBaixado.txt" ); Console.WriteLine( "Fim Download" ); Console.ReadLine(); |
1
2
3
4
5
6
| ' VB.NET Console.Clear() Console.WriteLine( "Download" ) Download(Servico, "arquivo.txt" , "arquivoBaixado.txt" ) Console.WriteLine( "Fim Download" ) Console.ReadLine() |
Enviando um item para a lixeira
Por fim, a última coisa que quero mostrar para você neste artigo é: como enviamos um item para a lixeira? Na segunda versão da API do Google Drive, nós tínhamos à nossa disposição um método específico para enviar um item para a lixeira. Porém, na terceira versão da API a Google decidiu remover esse método.
Para enviarmos um item para a lixeira, nós temos que recuperar o seu “id“, criar uma instância da classe “File” e marcar a propriedade “Trashed” como verdadeiro. Em seguida, nós criamos um request para o método “Files.Update” enviando essa instância de “File“:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // C# private static void MoverParaLixeira(Google.Apis.Drive.v3.DriveService servico, string nome) { var ids = ProcurarArquivoId(servico, nome); if (ids != null && ids.Any()) { foreach ( var id in ids) { var arquivo = new Google.Apis.Drive.v3.Data.File(); arquivo.Trashed = true ; var request = servico.Files.Update(arquivo, id); request.Execute(); } } } |
1
2
3
4
5
6
7
8
9
10
11
12
| ' VB.NET Private Sub MoverParaLixeira(Servico As Google.Apis.Drive.v3.DriveService, Nome As String ) Dim Ids = ProcurarArquivoId(Servico, Nome) If Ids IsNot Nothing AndAlso Ids.Any() Then For Each Id In Ids Dim Arquivo = New Google.Apis.Drive.v3.Data.File() Arquivo.Trashed = True Dim Request = Servico.Files.Update(Arquivo, Id) Request.Execute() Next End If End Sub |
A chamada desse método não tem segredo. Basta passarmos o nome do arquivo ou pasta que deverá ser mandado para a lixeira:
1
2
3
4
5
6
| // C# Console.Clear(); Console.WriteLine( "Lixeira" ); MoverParaLixeira(servico, "arquivo.txt" ); Console.WriteLine( "Fim Lixeira" ); Console.ReadLine(); |
1
2
3
4
5
6
| ' VB.NET Console.Clear() Console.WriteLine( "Lixeira" ) MoverParaLixeira(Servico, "arquivo.txt" ) Console.WriteLine( "Fim Lixeira" ) Console.ReadLine() |
Concluindo
O acesso à API do Google Drive em projetos .NET não é tão complicado de se implementar. Existem alguns detalhes que são chatos, mas, uma vez que entendemos o funcionamento da API, fica fácil de fazer qualquer tipo de manipulação do Google Drive a partir da nossa aplicação.
No artigo de hoje você aprendeu a habilitar a API do Google Drive na sua conta, bem como a geração do arquivo de credenciais que é necessário para o seu acesso. Em seguida, vimos como listar, fazer o upload, download e exclusão de arquivos do Google Drive no C# e VB.NET. Além disso, nós conferimos também como mandar itens para a lixeira.
E você, já precisou fazer alguma integração com o Google Drive nas suas aplicações? Já pensou na possibilidade de armazenar alguns dados da sua aplicação na sua conta do Google Drive? Quem sabe algum backup ou disponibilizar novas versões da aplicação? Conte pra gente nos comentários a sua experiência com o Google Drive ou talvez as ideias que você teve após ter lido este artigo.
Baixe o projeto de exemplo
Para baixar o projeto de exemplo desse artigo, assine a minha newsletter. Ao fazer isso, além de ter acesso ao projeto, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário no final do artigo.
Até a próxima!
André Lima
bom dia amigo, vc poderia me enviar o projeto em Vb.net?
ResponderExcluir