Paquete.FtpCliente.java Source code

Java tutorial

Introduction

Here is the source code for Paquete.FtpCliente.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Paquete;

/**
 *
 * @author emerson
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.ftpserver.*;
import org.apache.ftpserver.listener.ListenerFactory;

public class FtpCliente {

    /**
     * Atributos de Clase
    *
     */
    private FTPClient client;
    private User user;
    private FtpServidor server;

    public FtpCliente() {
    }

    public FtpCliente(User user, FtpServidor server) {
        client = new FTPClient();
        this.server = server;
        this.user = user;
    }

    /**
     * Mtodo que establece la conexin con el ftp
     *
     * @return boolean
     * @exception IOException
     */
    public boolean conectar() {
        boolean connected = false;
        try {
            // Connect to an FTP server on port 21
            /*client.connect("ftp.proyectoftp.comoj.com", 21);
            if (client.login("a5371238", "Hola123!")) {
            connected=true;
            }*/

            System.out.println("d" + server.getListener().getServerAddress());
            System.out.println("s " + server.getListener().getPort());
            client.connect(server.getListener().getServerAddress(), server.getListener().getPort());
            if (client.login(user.getUsername(), user.getPassword())) {
                connected = true;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("IOException =" + e.getMessage());
        }
        return connected;
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que cambia de directorio ,siendo este en el que queremos trabajar
     *
     * @param String directorio
     * @return boolean
     * @exception IOException
     */
    public boolean cd(String directorio) {
        try {
            if (client.changeWorkingDirectory(directorio)) {
                return true;
            } else {
                return false;
            }
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
        }
        return false;
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que crea un fichero en el ftp
     *
     * @param String rutaFicheroFtp (ruta remota)
     * @param String rutaFichero (ruta local donde esta el fichero)
     * @return boolean
     * @exception IOException
     */
    public boolean crearFichero(String rutaFicheroFtp, String rutaFichero) {
        try {
            client.storeFile(rutaFicheroFtp, new FileInputStream(new File(rutaFichero)));
            return true;
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
        }
        return false;
    }

    public boolean crearDirectorio(String ruta) {
        try {
            if (client.makeDirectory(ruta)) {
                return true;
            } else {
                return false;
            }
        } catch (IOException ex) {
            System.out.println("IOException =" + ex.getMessage());
        }
        return false;
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que elimina un fichero del FTP
     *
     * @param String rutaFichero = ruta del fichero en el FTP
     * @return boolean
     * @exception IOException
     */
    public boolean eliminarFichero(String rutaFichero) {
        try {
            client.deleteFile(rutaFichero);
            return true;
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
        }
        return false;
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que cierra la conexion con el FTP
     *
     * @return boolean
     * @exception IOException
     */
    public boolean desconectar() {
        try {
            client.disconnect();
            client = null;
            return true;
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
            return false;
        }
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que obtiene el directorio actual, comando pwd
     *
     * @return String
     * @exception IOException
     */
    public String directorioActual() {
        try {
            return client.printWorkingDirectory();
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
            return null;
        }
    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo que obtiene un fichero del FTP y lo crea en un otro directorio
     * local
     *
     * @param String rutaFichero = ruta del fichero en el FTP
     * @param String rutaLocal = ruta en donde se creara el fichero
     * @return boolean
     * @exception IOException
     */
    public boolean getFichero(String rutaFichero, String rutaLocal) {
        try {
            InputStream in = client.retrieveFileStream(rutaFichero);
            byte[] b = new byte[in.available()];
            in.read(b);
            FileOutputStream file = new FileOutputStream(new File(rutaLocal));
            file.write(b);
            file.close();
            in.close();
            return true;
        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
            return false;
        }

    }
    /*---------------------------------------------------------------------------*/

    /**
     * Mtodo lista los nombres de los archivos y directorios en el directorio
     * actual, comando ls
     *
     * @return String
     * @exception IOException
     */
    public String ls() {
        String Lista;
        try {
            Lista = client.listDirectories().toString() + client.listFiles().toString();
            return Lista;

        } catch (IOException e) {
            System.out.println("IOException =" + e.getMessage());
            return null;
        }

    }
}