Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <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);
        }