Ajuda com Transferência de arquivos ftp

2 respostas
analuiza.fagundes

Boa tarde ,

segui o artigo do fórum para transferência de arquivos ftp.
A diferença é que eu fiz uma classe para tranferir de um local remoto para outro . Segue abaixo a classe…

package util;
import java.io.File;   
import java.io.FileOutputStream; 
import java.io.OutputStream;
  
import org.apache.commons.net.ftp.FTPReply;   
import org.apache.commons.net.ftp.FTPClient;   
  
public class Util2 
{   
	
	
    public static void main( String[] args ) 
    {   
        String nomeArquivo = null;   
        FTPClient ftpMaster = new FTPClient();
        FTPClient ftpSlave = new FTPClient();
        File dest = new File("/home/cognex/CamPictures/");
        
        
        try 
        {   
            ftpMaster.connect( "10.43.9.81" );   
               
            //verifica se conectou com sucesso   
            if( FTPReply.isPositiveCompletion( ftpMaster.getReplyCode() ) ) 
            {   
                ftpMaster.login( "123", "123" ); 
                ftpMaster.changeWorkingDirectory("/home/master/images/");
            } 
            else 
            {   
                //erro ao se conectar   
                ftpMaster.disconnect();   
                System.out.println("Conexão recusada");   
                System.exit(1);   
            }   
            
            ftpSlave.connect( "10.43.9.82" );   
            
            //verifica se conectou com sucesso!   
            if( FTPReply.isPositiveCompletion( ftpMaster.getReplyCode() ) ) 
            {   
                ftpMaster.login( "123", "123" ); 
                ftpMaster.changeWorkingDirectory("/home/cognex/CamPictures/");
            } 
            else 
            {   
                //erro ao se conectar   
                ftpMaster.disconnect();   
                System.out.println("Conexão recusada");   
                System.exit(1);   
            }  
            
            String[] arquivos = ftpMaster.listNames();   
            
            //para cada arquivo informado...   
            for( int i=0; i<arquivos.length; i++ ) 
            {   
     	
            	// armazena o destino para onde serão enviados os arquivos
            	OutputStream out = new FileOutputStream(dest+"/");

            	//pega apenas o nome do arquivo   
                int idx = arquivos[i].lastIndexOf(File.separator);   
                if( idx < 0 ) idx = 0;   
                else idx++;   
                nomeArquivo = arquivos[i].substring( idx, args[i].length() );   
                   
                //ajusta o tipo do arquivo a ser enviado   
                if( arquivos[i].endsWith(".txt") ) 
                {   
                    ftpMaster.setFileType( FTPClient.ASCII_FILE_TYPE );   
                } else if( arquivos[i].endsWith(".jpg") ) 
                {   
                    ftpMaster.setFileType( FTPClient.BINARY_FILE_TYPE );   
                } else 
                {   
                    ftpMaster.setFileType( FTPClient.ASCII_FILE_TYPE );   
                }   
                
                System.out.println("Enviando arquivo "+nomeArquivo+"...");   
                   
                //faz o envio do arquivo  
            	ftpMaster.retrieveFile("/home/master/images/"+ arquivos[i],out);
    
                System.out.println("Arquivo "+nomeArquivo+" enviado com sucesso!");   
            }  
               
            ftpMaster.disconnect();  
            ftpSlave.disconnect();
            System.out.println("Fim. ");
            
        } 
        catch( Exception e ) 
        {   
            System.out.println("Ocorreu um erro: "+e);   
            System.exit(1);   
        }   
    }   
}

Eu consigo conectar aos endereços e listar os arquivos existentes sem problemas …só que na linha em que armazena o destino para onde serão enviados os arquivos dá o seguinte erro

Ocorreu um erro: java.io.FileNotFoundException: \home\cognex\CamPictures (O sistema não pode encontrar o caminho especificado)
Alguém pode me ajudar ?

2 Respostas

E

Você está trabalhando com um sistema Unix ou Linux, não?
Note que “/home/cognex/CamPictures” é diferente de “/home/cognex/campictures”.
Usando um client qualquer de FTP (como o ftp de um outro Linux ou Unix) cheque se esse diretório é acessível e tem exatamente esse nome.

analuiza.fagundes

Estou usando o Linux.
Obrigado pela ajuda … eu chequei e o caminho do diretório está certo

Criado 4 de novembro de 2009
Ultima resposta 4 de nov. de 2009
Respostas 2
Participantes 2