Package org.sfsoft.ftp

Source Code of org.sfsoft.ftp.Ftp

package org.sfsoft.ftp;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

/**
* Cliente FTP Java que conecta con un servidor FTP
* Lista el contenido del directorio ra�z y descarga un fichero
*
* Se ha utilizado la librer�a Apache commons net que proporciona librer�as
* y un API para trabajar con diferentes protocolos desde Java
* http://commons.apache.org/proper/commons-net/
*
* TODO Subir un fichero al servidor
*
* @author Santiago Faci
* @version 1.0
*
*/
public class Ftp {

  public static final String IP = "localhost";
  public static final int PUERTO = 21;
  public static final String USUARIO = "superman";
  public static final String CONTRASENA = "superman";
 
  public static void main(String args[]) {
   
    FTPClient clienteFtp = null;
 
    try {
      // Conecta con el servidor FTP e inicia sesi�n
      System.out.println("Conectando e iniciando sesi�n . . .");
      clienteFtp = new FTPClient();
      clienteFtp.connect(IP, PUERTO);
      clienteFtp.login(USUARIO, CONTRASENA);
     
      /*
       *  En el modo pasivo es siempre el cliente quien abre las conexiones
       *  Da menos problemas si estamos detr�s de un firewall, por ejemplo
       */
      clienteFtp.enterLocalPassiveMode();
      clienteFtp.setFileType(FTPClient.BINARY_FILE_TYPE);
     
      // Lista el directorio del servidor FTP
      System.out.println("Listando el directorio ra�z del servidor . . ");
      FTPFile[] ficheros = clienteFtp.listFiles();
      for (int i = 0; i < ficheros.length; i++) {
        System.out.println(ficheros[i].getName());
      }
     
      // Fija los ficheros remoto y local
      String ficheroRemoto = "/modelo.txt";
      File ficheroLocal = new File("c:" + File.separator + "modelo.txt");
     
      System.out.println("Descargando fichero '" + ficheroRemoto + "' del servidor . . .");
      // Descarga un fichero del servidor FTP
      OutputStream os = new BufferedOutputStream(new FileOutputStream(ficheroLocal));
      if (clienteFtp.retrieveFile(ficheroRemoto, os))
        System.out.println("El fichero se ha recibido correctamente");
     
      os.close();
     
      /*
       * TODO
       * Con el m�todo clienteFtp.storeFile(String nombreFicheroRemoto, InputStream isFicheroLocal)
       * se pueden subir ficheros al servidor FTP
       */
     
    } catch (IOException ioe) {
      ioe.printStackTrace();
    } finally {
      /*
       * Cierra la sesi�n y desconecta del servidor FTP
       */
      if (clienteFtp != null)
        try {
          System.out.println("Cerrando conexi�n y desconectando del servidor . . .");
          if (clienteFtp.isConnected()) {
            clienteFtp.logout();
            clienteFtp.disconnect();
          }
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
    }
  }
}
TOP

Related Classes of org.sfsoft.ftp.Ftp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.