0
java를 사용하여 FTP 서버에서 "www"폴더를 다운로드하는 방법을 검색 중입니다. 나는 폴더를 압축 한 다음 FTPClient에서 "파일 검색"방법으로 파일을 다운로드하려고 시도했지만이 작업을 수행 할 방법이 없습니다. 감사합니다. 감사합니다.Java에서 FTP 폴더 다운로드 (FTPClient Apache Commons Net 3.6 API 사용)
내 백업 FTP 방법 코드 :
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) {
}
}