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

Entradas populares de este blog

Fireworks CS3 portable

Para que hagas los logos, botones e imagenes para tus aplicaciones facil y rapido... ¿Qué es Fireworks? Adobe Fireworks es una aplicación en forma de estudio (basada en la forma de estudio de Adobe Flash ), pero con más parecido a un taller destinado para el manejo híbrido de gráficos vectoriales con Gráficos en mapa de bits y que ofrece un ambiente eficiente tanto para la creación rápida de prototipos de sitios Web e interfaces de usuario, como para la creación y Optimización de Imágenes para web. Originalmente fue desarrollado por Macromedia , compañía que fue comprada en 2005 por Adobe Systems . Fireworks está disponible de forma individual o integrado en Adobe CS3/CS4/CS5 y por tanto ha sido diseñado para integrarse con otros productos de Adobe, como Dreamweaver y Flash . Integración con Adobe Flash La integración con Adobe Flash se ha ido reduciendo paulatinamente desde que Flash, en su versión 7, integró la herramienta PolyStar que hace un polígono

Pasar de una ventana a otra en java

Hola a todos en esta oportunidad estamos postiando algo que cuando empezamos con java es muy necesario y es como pasar de una ventana a otra, ya sea JDialog o JFrame; creados en tiempo de ejecucion o en aplicaciones de escritorio: Para llamar a un JDialog:        JDialog1 dialogo = new JDialog1 ( this , true );        dialogo . show (); y para cerrar un JDialogo de una plicacion de escritorio se puede utilizar:        dispose (); Para llamar a un JFrame:        JFrame1 frame = new JFrame1 ();        frame . show (); Para cerrar un JFrame de una plicacion de escritorio:                 dispose ();   o tambien: System. exit (0); y si se contruye a partir de la clase JFrame se coloca el siguiente codigo en la parte publica del documento:       setDefaultCloseOperation ( EXIT_ON_CLOSE ); Espero los siguientes ejemplos les sean de mucha ayuda... Deja tu comentario o agradecimiento.

Limitar texto con CSS

HTML: <span class= "text" > Hello world this is a long sentence </span> CSS: .text {   display : block ;   width : 100px ;   overflow : hidden ;   white-space : nowrap ;   text - overflow : ellipsis; }  RESULTADO: Hello world t...