Como apagar arquivos de um servidor FTP via AdvPL

Introdução

Em muitos projetos que envolvem integração entre o Protheus e sistemas externos, é comum precisar manipular arquivos em servidores FTP — seja para baixar, enviar ou até mesmo excluir arquivos remotamente.

E sim, é totalmente possível fazer isso via AdvPL. No artigo de hoje, vamos mostrar como apagar arquivos de um servidor FTP diretamente pelo código, utilizando funções nativas da linguagem.

Essa solução é útil, por exemplo, para rotinas automáticas de integração, em que os arquivos processados precisam ser removidos para evitar duplicidades ou sobrecarga no servidor.

Entendendo a lógica da exclusão via FTP

A ideia geral é simples:

  1. Separar o caminho e o nome do arquivo;
  2. Conectar ao servidor FTP;
  3. Navegar até o diretório correto;
  4. Excluir o arquivo desejado;
  5. E por fim, desconectar com segurança.

Com base nessa sequência, foi criada uma função chamada zDelFTP(), que automatiza esse processo de ponta a ponta.

Etapas detalhadas

1. Separando o caminho do arquivo

A primeira etapa é utilizar a função SplitPath(), que divide o caminho completo em partes (drive, diretório, nome e extensão).
Isso facilita a manipulação das pastas antes de executar o comando de exclusão.

2. Conectando ao servidor FTP

Em seguida, é feita a conexão utilizando FTPConnect(), informando o servidor, porta, usuário e senha.
Uma dica importante: a senha está armazenada com Decode64(), para evitar que fique em texto puro no código.

3. Navegando pelas pastas

Depois da conexão, o código usa a função Separa() para quebrar o caminho em um array de pastas.
Com isso, um loop percorre cada pasta, mudando o diretório ativo com FTPDirChange() até chegar na pasta onde o arquivo realmente está.

4. Apagando o arquivo

Chegando na pasta certa, é hora de excluir o arquivo com FTPErase() — que remove o arquivo indicado do servidor.

5. Encerrando a conexão

Para finalizar, a função FTPDisconnect() garante que a conexão seja encerrada corretamente, liberando os recursos de rede.

Exemplo de código completo

//Bibliotecas
#Include "TOTVS.ch"
 
/*/{Protheus.doc} zDelFTP
Função para apagar o arquivo dentro do FTP
@type user function
@author Atilio
@since 20/06/2025
@param cArquiFTP, Caminho do arquivo no FTP
@example u_zDelFTP("\2025-02\nf_entradas\mp\arquivo.txt")
/*/
 
User Function zDelFTP(cArquiFTP)
    Local aArea       := FWGetArea()
    Local lContinua   := .T.
    Local cFTPUrl     := "ftp.milenioapp.com"
    Local cFTPUser    := "protheus@milenioapp.com"
    Local cFTPPass    := Decode64("bTc5KnVxeG1NNC1V")
    Local nFTPPort    := 21
    Local cDrive      := ""
    Local cDiretorio  := ""
    Local cNome       := ""
    Local cExtensao   := ""
    Local aPastas     := {}
    Local nAtual      := 0
    Default cArquiFTP := ""
 
    If ! Empty(cArquiFTP)
        SplitPath(cArquiFTP, @cDrive, @cDiretorio, @cNome, @cExtensao)
        lContinua := FTPConnect(cFTPUrl, nFTPPort, cFTPUser, cFTPPass)
 
        If lContinua
            aPastas := Separa(cDiretorio, "\")
            For nAtual := 1 To Len(aPastas)
                If ! Empty(aPastas[nAtual])
                    lContinua := lContinua .And. FTPDirChange(aPastas[nAtual])
                    If ! lContinua
                        Exit
                    EndIf
                EndIf
            Next
 
            If lContinua
                FTPErase(cNome + cExtensao)
            EndIf
        EndIf
 
        FTPDisconnect()
    EndIf
 
    FWRestArea(aArea)
Return

Atenção aos detalhes em servidores Linux

Um ponto importante: em servidores Linux, os nomes de pastas e arquivos são sensíveis a maiúsculas e minúsculas.
Ou seja, “Arquivo.txt” é diferente de “arquivo.txt”.
Certifique-se de passar o caminho exatamente como está configurado no servidor, ou o comando poderá falhar.

Conclusão

Excluir arquivos de um servidor FTP via AdvPL é uma tarefa simples, mas que exige cuidado com detalhes como caminhos, permissões e autenticação.
Com a função zDelFTP(), você consegue automatizar a limpeza de diretórios FTP, mantendo suas rotinas de integração mais seguras e organizadas.

Se você quiser entender como aplicar isso no seu ambiente Protheus, ou integrar esse processo com rotinas automatizadas de integração, entre em contato com a Geeker Company — nossa equipe pode te ajudar a configurar tudo de forma prática e segura.

Fale conosco

Se você quer implementar essa rotina de exclusão automática no seu ambiente Protheus, integrar com outros sistemas ou otimizar seus processos de integração, fale com a Geeker Company. Nossa equipe é especialista em soluções personalizadas em AdvPL, integrações FTP e automação de rotinas para deixar seu sistema mais seguro, leve e eficiente.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

advpl
Como apagar arquivos de um servidor FTP via AdvPL
Introdução Em muitos projetos que envolvem integração entre o Protheus e sistemas externos, é comum precisar manipular arquivos em servidores FTP — seja para baixar, enviar ou até mesmo excluir arquivos remotamente. E sim, é totalmente possível fazer isso via AdvPL. No artigo de hoje, vamos mostrar como apagar arquivos de um servidor FTP diretamente […]
Protheus 12.1.2510: o que muda na prática e o que você precisa revisar
Quem trabalha com o Protheus sabe: basta uma nova release da TOTVS para que as equipes de TI e consultoria entrem em modo de alerta.Mas, diferente de outras atualizações, a versão 12.1.2510 chega com mudanças que não se limitam a correções técnicas. Ela traz um novo padrão de execução, revisa funções antigas e aprimora recursos […]
brasil
O Brasil entra no jogo da IA e o mundo da tecnologia acelera
O mundo da tecnologia tá em ritmo acelerado — e o Brasil começa, finalmente, a entrar nesse jogo de verdade. Entre discussões sobre uma IA nacional, novos chips com desempenho impressionante, avanços na mobilidade elétrica e o uso de inteligência artificial no agronegócio, o país dá sinais claros de que quer ocupar espaço na vanguarda […]
Como corrigir o erro “Unregistered Files” no SQL Server durante a instalação do Protheus
Se você tentou instalar o Protheus e se deparou com o erro “Unregistered Files” no SQL Server, calma — esse problema é mais comum do que parece e tem uma solução simples.Neste artigo, vamos te mostrar o passo a passo para corrigir esse erro e seguir normalmente com a instalação do sistema. O que causa […]