/// <summary> /// Realiza a exclusão de um item a partir do seu nome. /// </summary> /// <param name="tipo">Tipo do item (pasta ou arquivo).</param> /// <param name="nome">Nome do arquivo.</param> /// <param name="idPastaPai">ID da pasta onde o arquivo está armazenado.</param> public async Task ExcluirPorNome(TipoGoogleDriveFile tipo, string nome, string idPastaPai = null) { var file = await ProcurarPorNome(tipo, nome, idPastaPai); if (file == null) { return; } FilesResource.DeleteRequest deleteRequest = _driveService.Files.Delete(file.Id); await deleteRequest.ExecuteAsync(); }
/// <summary> /// Realiza a procura de um item pelo nome /// </summary> /// <param name="tipo">Tipo do item (pasta ou arquivo).</param> /// <param name="nome">Nome do item que deverá ser procurado.</param> /// <param name="idPastaProcura">ID da pasta onde a procura deverá ser realizada.</param> public async Task <GoogleApiV3Data.File> ProcurarPorNome(TipoGoogleDriveFile tipo, string nome, string idPastaProcura = null) { FilesResource.ListRequest list = _driveService.Files.List(); list.Fields = "files(id, name, trashed, parents)"; list.PageSize = 5; list.Q = $"name = '{nome}' and trashed = false"; if (tipo == TipoGoogleDriveFile.Pasta) { list.Q += " and mimeType = 'application/vnd.google-apps.folder'"; } if (!string.IsNullOrEmpty(idPastaProcura)) { list.Q += " and '" + idPastaProcura + "' in parents"; } var filesFeed = await list.ExecuteAsync(); while (filesFeed.Files != null) { var encontrado = filesFeed.Files.FirstOrDefault(x => string.Equals(x.Name, nome, StringComparison.InvariantCultureIgnoreCase)); if (encontrado != null) { return(encontrado); } if (filesFeed.NextPageToken == null) { break; } list.PageToken = filesFeed.NextPageToken; filesFeed = await list.ExecuteAsync(); } return(null); }