import java.io.*;
import java.net.*;
import org.apache.commons.net.ftp.*;

// Ojo al cortafuegos, que tiene que abrir los puertos FTP
// Acceso a la web: http://v-espino.com:3304/~dam2/


public class cliente1FTPDam2{
    public static void main(String args[]){
        try{
            // Datos para la conexion
            String servFTP="v-espino.com";
            int puerto=3305;
            String usuario="dam2";
            String clave="alcachofa";
            System.out.print("Conectando con "+servFTP+"...");
            
            // Conectamos
            FTPClient cliente=new FTPClient();
            cliente.connect(servFTP,puerto);
            System.out.println("conectado");
            
            // Nos identificamos
            boolean login=cliente.login(usuario,clave);
            if(login) System.out.println("usuario y contraseña correctos");
            else{
                System.out.println("login incorrecto");
                cliente.disconnect();
                System.exit(1);
            }
            
            // A ver donde estoy
            System.out.println("Directorio actual: "+cliente.printWorkingDirectory());
            
            // Recogemos los ficheros via FTP
            FTPFile[] ficheros=cliente.listFiles();
            System.out.println("Ficheros en el directorio actual: "+ficheros.length);
            String tipos[]={"Fichero","Directorio","Enlace"};
            for(int i=0;i<ficheros.length;i++){
                System.out.println("\t"+ficheros[i].getName()+" => "+tipos[ficheros[i].getType()]);
            }
            // Despidiendo de forma educada
            boolean logout=cliente.logout();
            if(logout) System.out.println("Me he despedido correctamente");
            else System.out.println("Me han echado con cajas destempladas");
            // Desconectando
            cliente.disconnect();
            System.out.println("Desconectado");
        }catch(Exception e){
            System.out.println("ERROR");
            e.printStackTrace();
        }
    }

}
