hola colega
esta libreria io la estoy usando con oracle como un java aqui le mando el EJEMPLO
ESE ES MI CODIGO
RECUERDA ATACHAR LOS 2 PAQUETES org.apache.oro Y org.apache.commons.
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.String;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.oro.text.awk.*;
public class SwGetDataFiles {
   public static void main(String[] args) {
  Â
 Â
  Â
  Â
         String v_error="";  Â
       Â
    Â
         String server  = "ip_ftp"; //Direccion ip del ftp
         String username = "user";       //usuario
         String password = "pasword";         //pasword
         String destinationFolder = "C:\\FOLDER_DONDE_C_BAJAN_LOS_ARCHIVOS\\"; //folder destino donde se copiaran los datos remotos     Â
        String folder = "/DIR_1/_DIR_34/";             //folder remoto donde se encuentran los datos a transferir
        String folderBackup = "/DIR34/DIR_BACKUP/";
   Â
   FTPClient ftp=null; Â
   FTPClient ftp2=null;
      try
      {
        // Connect and logon to FTP Server
         Â
      Â
        ftp = new FTPClient();
        ftp2 = new FTPClient();
       Â
        ftp.connect(server,21);       Â
        ftp.login( username, password );       Â
        ftp.enterLocalPassiveMode();
        ftp.setFileType(FTP.ASCII_FILE_TYPE); ///// s eañadio nuevo       Â
         Â
        ftp2.connect(server,21);       Â
        ftp2.login( username, password );       Â
        ftp2.enterLocalPassiveMode();
        ftp2.setFileType(FTP.ASCII_FILE_TYPE); ///// s eañadio nuevoÂ
    Â
    Â
        System.out.println("Connected to " + server + ".");  Â
       Â
        System.out.print(ftp.getReplyString());       Â
        // List the files in the directory
        System.out.println("cambiando de directorio DE AMBOS");
        ftp.changeWorkingDirectory(folder);
        ftp2.changeWorkingDirectory(folderBackup);
        System.out.println("cambiando de directorio listo:"+ftp.printWorkingDirectory());
        System.out.println("cambiando de directorio BACUP listo:"+ftp2.printWorkingDirectory());
                  Â
        FTPFile[] files=null;
          files = ftp.listFiles(); // Obtiene los archivos del servidor y los mostramos
  Â
 Â
               boolean status;
           for( int i=0; i<files.length; i++ )
           {
                System.out.println(files[i].isFile());
                if (files[i].isFile() ) {
                   System.out.println("Nombre del archivo "+files[i].getName());
                                     Â
                  Â
                 // carga el archivo a copiar en el stream
                 InputStream ios = ftp.retrieveFileStream(files[i].getName());     Â
                Â
                 // graba el archivo en el ftp de backupÂ
                 status = ftp2.storeFile(files[i].getName(), ios);
                 System.out.println("put file-status:" +status);
                 boolean commandOK=ftp.completePendingCommand();
                 System.out.println("pending cmd complete-status egatedev:" +commandOK);
                 ios.close();
                  Â
               // verifica si lo movio como backup
               // de se asi, lo descarga a a una carpeta local C://CarpetaLocal para procesarlo en la base de datos
               if (commandOK)
               { System.out.println("comando ok = true, grabando en local");                Â
                   File file = new File( destinationFolder + File.separator + files[ i ].getName().replace('-','_') );                                   Â
                   FileOutputStream fos = new FileOutputStream( file );   Â
                   // graba el archivo en la carpeta local
                   boolean copiadoOK = ftp.retrieveFile( files[ i ].getName(), fos );
                   fos.close();
                  Â
                   // si lo copia en el servidor de backup
                   // lo elimina
                   System.out.println("copiadoOK: "+copiadoOK);
                   if (copiadoOK)
                   {  ftp.deleteFile(files[i].getName());}
                  }
Â
           Â
               };             Â
           }
              Â
          Â
            System.out.println("ok");
           ftp.logout();
            ftp2.logout();
Â
               Â
    Â
        }
        catch(IOException ioe)   { v_error = "IOException error ftp: "+ioe.getMessage();
                                    ioe.printStackTrace();}
        catch( Exception e )     {v_error = "Exception error ftp: "+e.getMessage(); }
        finally
           {
              if(ftp.isConnected())
               {
                Â
                 try{
                 ftp.disconnect();                    Â
                 ftp2.disconnect();
                 }
                 catch(IOException ioe1)   { v_error = "error de ftp, al desconexion:"+ioe1.getMessage();}
                Â
                }
             }
   Â
        System.out.println(v_error);
  Â
    Â
    }
   Â
   Â
   }
  Â
ESE ERROR Q TE SALE AMI TAMBIEN ME SALE.... PERO AMI SI ME DESCARGA TODOS LOS ARCHIVOS
ESTE PROCESO IO LO UTILIZO CON UN JOB DE ORACLE Q SE EJECUTA CADA 3 MINUTOS
CUALQUIER COSA PUEDE PREGUNTARME
SLDS