sun.net.ftp.ftpClient è la classe che ho esteso

ecco:

import sun.net.ftp.*;

import sun.net.*;

import java.io.*;

// Definisco la classe con i metodi per gestire la connessione con il

// server (segnale,trasmissione,login)

public class FTPapp extends FtpClient {

// Definisco la variabile che conterra l'indirizzo IP del server

private String serverName;

// Login per il server

private String userName;

// Password per il server

private String userPassword;

// Definizione della classe con IP server, login e password passati in fase di inizializzazione

private int port;

public FTPapp (String serverName, String userName, String userPassword, int port) throws Exception
{

this.port=port;

this.serverName = serverName;

this.userName = userName;

this.userPassword = userPassword;
}

// Metodo per aprire la connessione con il SERVER

public boolean connServer() {

try {

openServer(serverName,port);

}

catch (IOException e)

{

System.out.println(e.toString());

return (false);

}

return (true);

} // Metodo per loggarsi sul SERVER

public boolean loginServer() {

try {

login(userName, userPassword);

}

catch (IOException e)

{

System.out.println(e.toString());

return (false);

}

return (true);

}



// Metodo Put per la trasmissione dati da CLIENT a SERVER

public boolean putFile(String clientFile,String clientPath,String remotePath,String sTipoTrasm) {

try {

// Trasmissione fatta in formato ASCII/Binary()

if (sTipoTrasm.equals("B")) {

// Trasmissione in binario se la variabile è valorizzata a B

binary();

} else {

// Trasmissione in formato ASCII se la variabile è valorizzata diversamente da A

ascii();

}

// Nome del file dopo la copia sul server, nel caso in cui si voglia lasciare lo stesso

// nome basta passarli clientFile anche come nome nel put("...")

// Canale di Output in remoto

TelnetOutputStream os=(TelnetOutputStream) put(remotePath + clientFile);



// Definisco il file da trasferire

File file_in = new File(clientPath + clientFile);

// Apro un canale di input

FileInputStream is = new FileInputStream(file_in);

int c;

int total_bytes=0;

byte[] bytes = new byte[1024];

// Leggo dal canale di input e scrivo su quello di output (in remoto)

while((c=is.read(bytes))!=-1)

{

total_bytes +=c;

os.write(bytes,0,c);

}

// Chiudo i canali di comunicazione e la connessione server

is.close();

os.close();

closeServer();

return (true);

}

catch (IOException e)

{

System.out.println(e.toString());

return (false);

}

}
}