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) {
}
}