FTP com JAVA

Olá amigos!
Acompanhando meus outros posts é possível identificar que uso um servidor Mikrotik em minha rede. Este, por sua vez, roda todos os dias o famosos script de backup. Todavia, o backup fica salvo no HD do servidor. Existem scripts para efetuar o envio desse Backup por e-mail. Eu mesmo usava um desses. Só que com o tempo, o backup foi ficando grande e hoje, por exemplo, já corresponde a um arquivo de 13MB. Enviar e receber isso por e-mail todos os dias não estava ficando muito prático, nem lógico, visto que como estou na mesma rede que este Servidor, poderia obter o arquivo diretamente dele. Então, comecei a abrir o Mk todos os dias, copiar o arquivo e colá-lo em meu notebook. Já facilitou bastante, mas quis automatizar e então resolvi fazer uma pequena classe em Java para conectar no Mk via FTP e copiar o arquivo automaticamente. Bom, abaixo está a classe para quem quiser fazer algo parecido ou só precisar se conectar a um FTP com o Java:


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;


public class FTPConnect {

public static void main (String[] args) throws SocketException,

IOException{

FTPClient ftp = new FTPClient();
//Fazendo a conexão
ftp.connect ("ip_do_ftp" );

//Efetuando o Login

ftp.login( "login", "password" );

//Mundando o diretório de trabalho

ftp.changeWorkingDirectory ("/");

//Adiquirindo o nome dos arquivos / diretórios existentes

String[] arq = ftp.listNames();

System.out.println ("Listando arquivos: \n");

for (String f : arq){

System.out.println(f);

}

//Fazendo o download do arquivo

FileOutputStream fos = new FileOutputStream( "/diretorio_de_destino/nome_do_arquivo" );


if (ftp.retrieveFile( "nome_do_arquivo", fos ))

System.out.println("Download efetuado com sucesso!");

else

System.out.println ("Erro ao efetuar download do arquivo.");

ftp.logout();

ftp.disconnect();

}

}



Quem quiser fazer um upload, pode usar as linhas abaixo:




//Fazendo o upload do arquivo

FileInputStream arqEnviar = new FileInputStream ("/diretorio_de_destino/nome_do_arquivo");

if (ftp.storeFile ("nome_do_arquivo", arqEnviar))

System.out.println("Arquivo armazenado com sucesso!");

else

System.out.println ("Erro ao armazenar o arquivo.");



Boa sorte a todos!

Comentários

  1. ótimo post, mas estou com problema o firewall esta bloqueando.
    Pode me ajudar?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Cálculo de Horas Úteis - Excel (horas úteis entre duas datas)

Notebook não desliga completamente

Ajustar horário de verão 2013/2014 no Mikrotik