Bonjour, je code un pti client ftp en java en utilisant le package sun.net.ftp. Je sais qu'il ne faut pas l'utiliser mais j'ai des contraintes qui font que je dois le faire .
Donc mon code doit copier un fichier local sur un ftp distant, il marche bien. Ce que je voudrais maintenant faire, c mettre un timeout non pas pour une non reponse du serveur, mais pour un reseau étonnament lent qui impliquerait une copie du fichier trop lente. Voici mon code qui fonctionne deja :
Code :
- protected synchronized void writeToFtp(File [] filesToWrite) {
- try
- {
- String ftpHostIP = ftpURL;
- String username = ftpLogin;
- String password = ftpPassword;
- String directory = "";
- FtpClient ftpClient = new FtpClient();
- //CONNECT
- ftpClient.openServer(ftpHostIP); // connect to FTP server
- ftpClient.login(username, password); // login
- ftpClient.binary(); // set to binary mode transfer
- ftpClient.cd(directory); // change directory
- //File file=new File(filename); //file to create
- OutputStream out;
- InputStream in;
- byte c[] = new byte[4096];
- int read = 0;
- //WRITE
- for(int i=0; i<filesToWrite.length; i++) {
- File file = filesToWrite[i];
- out = ftpClient.put(file.getName());
- in = new FileInputStream(file);
- c = new byte[4096];
- read = 0;
- while ((read = in.read(c)) != -1 ) {
- out.write(c, 0, read);
- }
- in.close(); //close the io streams
- out.close();//stop the thread
- }
- //DISCONNECT
- //ftpClient.cd("/" );//change to root directory
- ftpClient.closeServer(); //close connection
- }
- catch (Exception e)
- {
- e.printstacktrace();
- }
- }
|
Quelqu'un a une idée de comment faire?
merci
Message édité par cymp le 05-12-2005 à 16:12:25