Ir al contenido principal

Lanzador de Comandos FTP en Java



En esta oportunidad crearemos una pequeña plicacion para lanzar comandos a un servidor ftp, el caso es que debemos tener el nombre del servidor, el nombre de usuario, la clave de la conexión.

Para empezar debemos descargar las librerias JvFTP creadas por Bea Petrovicova, las podemos descargar desde http://jvftp.sourceforge.net/.

Teniendo las librerias agregadas a nuestro proyecto tenemos unos ejemplos de codificación;

* Las declaramos en el documento:
import java.io.IOException;
import cz.dhl.io.*;
import cz.dhl.ftp.*;
* Creamos la variable de tipo ftp para ejecutar la conexión:
FtpConnect cn = FtpConnect.newConnect("ftp://ftp.dominio.com");
donde el dominio "//ftp.dominio.com" corresponde al ftp que
tengas para la conexión:

* Ahora creamos el inicio de sesión:
// se ingresa el usuario
cn.setUserName("usuario");
// se ingresa la contraseña
cn.setPassWord("contraseña");
* Ahora creamos un objeto de tipo ftp para ejecución de comandos y 
para que nos muestre toda la información del ftp:
Ftp cl = new Ftp();

* Ahora establecemos la conexión al ftp:

cl.connect(cn);
* Ahora para mostrar la informacion del ftp y directorios listados podemos
utilizar el siguiente codigo: 
CoFile dir = new FtpFile(cl.pwd(), cl);
// hacer una lista de archivos que tiene el directoria actual
CoFile fls[] = dir.listCoFiles();
if ( fls != null )
for (int n = 0; n < fls.length; n++)
System.out.println( fls[n].getName() + 
(fls[n].isDirectory() ? "/" : ""));
* Para subir y bajar archivos: 
//subir
  try {
    URL url = new URL("ftp://"+user+":"+pass+"@"+server+remotePath+";type=i");
    URLConnection urlc = url.openConnection();
    OutputStream os = urlc.getOutputStream();
    BufferedReader br = new BufferedReader(new FileReader(localPath));
    int c;
        while ((c = br.read()) != -1) {
            os.write(c);
        }
        os.flush();
        os.close();
        br.close();
        return true;
      } catch (Exception ex) {
        ex.printStackTrace();
        return false;
      }
//bajar
try {
    URL url = new URL("ftp://" + user + ":" + pass + "@" + server + remotePath + ";type=i");
    URLConnection urlc = url.openConnection();
    InputStream is = urlc.getInputStream();
    BufferedWriter bw = new BufferedWriter(new FileWriter(localPath));
    int c;
        while ((c = is.read()) != -1) {
            bw.write(c);
        }
        is.close();
        bw.flush();
        bw.close();
        return true;
       } catch (Exception ex) {
          ex.printStackTrace();
          System.out.println(ex.getMessage());
          return false;
        } 
  
* Para finalizar el codigo para desconectarnos del servidor ftp: 
cl.disconnect();
 
* Para descargar el proyecto con sus fuentes: FTP en Java 
 

Deja tu comentario o agradecimiento. 

Comentarios

  1. MIL GRACIAS POR EL EJEMPLO AMIGO,POR FAVOR POSTEA UN EJEMPLO DE COMO SUBIR ARCHIVOS A UN SERVIDOR GRACIAS SIGUE ASI

    ResponderEliminar
  2. Bueno acabo de adicionarle las funciones de subir y bajar archivo ajala te sirva... Saludos

    ResponderEliminar
  3. Hola

    Disculpa y por ejemplo en el caso de que no kiera usar la libreria que especificas como lo haria??? tendria que hacer un metodo para la conexion y especificar el puerto a utilizar

    ResponderEliminar
  4. Hola lo que planteas si es posible, pero resulta que esta libreria fue creada precisamente para ahorra trabajo ya que no solo tendríamos que establecer puertos ip hay que hacer una clase completa para que el programa interactue cvorrectamente con el servidor...

    ResponderEliminar
  5. Hola, el archivo que pusistes es solo el ejecutable, por favor podrias enviarme los archivos fuentes para estudiarlo.

    Saludos

    ResponderEliminar
  6. Hola a todos, Tengo un problema con las carpeta del FTP que llevan Acentos o la letra "Ñ"?? no me funciona la librería que solución existe para estos casos??

    Saludos

    ResponderEliminar

Publicar un comentario