2017-10-24 4 views
0

Ich suche, wie man den "www" Ordner auf einem FTP-Server mit Java herunterladen. Ich habe versucht, den Ordner zu zippen und laden Sie dann die Datei mit "Retrieve file" -Methode von FTPClient, aber ich kann keine Methode finden, dies zu tun. Ich schätze jede Hilfe, danke.Download FTP-Ordner auf Java (mit FTPClient Apache Commons Net 3.6 API)

My Backup FTP-Methode Code:

public void metodoBackupFtp(String host, String usr, String pass, String carpetaRemota, String destino) 
     throws InterruptedException { 
    // TODO Comprobar si seria posible comprimir el archivo antes de descargarlo 
    // *Nota al parecer no es posible con 
    // Ftp client, aun asi se deja el metodo de compresion sin probar 

    boolean connected, disconnected; 
    try { 
     FTPClient clienteFtp = new FTPClient(); 
     System.err.println("Datos de conexión\nHost:" + host + "\nUser:" + usr + "\nPass:" + pass); 
     clienteFtp.connect(host); 
     connected = clienteFtp.login(usr, pass); // TODO ya se realiza una conexión inicial correcta 
     clienteFtp.enterLocalPassiveMode(); 
     clienteFtp.setFileType(FTP.BINARY_FILE_TYPE); 
     if (connected) { 
      System.out.println("Conectado al FTP!"); 
      JOptionPane.showMessageDialog(frame, "Conectado al FTP => " + host, "Conectado al FTP!", 
        JOptionPane.INFORMATION_MESSAGE); 
      System.err.println("Descarga de carpeta Carpeta Remota: " + carpetaRemota + "Destino: " + pathDestino); 

     } else { 
      JOptionPane.showMessageDialog(frame, 
        "No se ha podido establecer una conexión (Revisa los datos de conexión)", 
        "Fallo la conexión al FTP => " + host, JOptionPane.ERROR_MESSAGE); 
     } 
     // Thread.sleep(10000); //Para comprobar que se mantiene la conexion 
     // Muestra la lista de archivos del raiz FTP en la consola 
     clienteFtp.enterLocalPassiveMode(); 

     FTPFile[] files = clienteFtp.listFiles(); 

     String[] sfiles = null; 
     if (files != null) 
     { 
      sfiles = new String[files.length]; 
      for (int i = 0; i < files.length; i++) 
      { 
       System.out.println(sfiles[i] = files[i].getName()); 

      } 
} 
     disconnected = clienteFtp.logout(); 
     if (disconnected) { 
      JOptionPane.showMessageDialog(frame, "Desconectado de " + host, "Logout", 
        JOptionPane.INFORMATION_MESSAGE); 
     } 
     clienteFtp.disconnect(); 
    } catch (SocketException e) { 
     JOptionPane.showMessageDialog(frame, "Fallo la conexión al FTP => " + host, "Error del servidor", 
       JOptionPane.ERROR_MESSAGE); 
    } catch (IOException e) { 

    } 

} 

Antwort

0

ich tun, um diese Klasse das Problem zu lösen. Ich habe keine Möglichkeit gefunden zu zippen, aber ich hoffe, es kann helfen. Entschuldigung für einen spanischen Variablennamen.

Verwandte Themen