Bonjour,
Mon projet en ce moment est de faire un programme qui envoie des fichiers sur un serveur ftp. Donc il fonctionne avec la librairie commons net d'apache, mais j'aimerai le faire un peu plus évoluer. C'est à dire faire une fonction pour voir la progression de l'envoi et pourquoi pas la vitesse également.
J'envoie fichier par fichier, donc une connexion = 1 upload.



J'ai pas mal fouiller sur le net, et je vois la fonction dans la doc de commons :

public OutputStream storeUniqueFileStream(String remote) throws IOException

Est ce que cette méthode peut me servir pour faire une progressbar ?
Vu qu'il retourne, ce qui a été envoyé ?
il faut faire une comparaison de taille sur le fichier en envois et et le flux envoyé ??


Voilà mon code qui permet d'envoyer un fichier

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package Moteur;
import java.io.*;
import java.net.SocketException;
 
//import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.*;
 
public class Ftp extends FTPClient
{
 
	public Ftp()
	{
 
	}
 
   	public boolean Upload(String server, String username, String password, String remote, String local) throws IOException
    {
 
		boolean error = false;
 
 
        //this.addProtocolCommandListener(new PrintCommandListener( new PrintWriter(System.out))); //Active les écoutes des commandes FTP
 
        try
        {
 
            this.connect(server);
            //System.out.println("Connected to " + server + ".");
 
            int reply = this.getReplyCode();
 
            if (!FTPReply.isPositiveCompletion(reply))
            {
                this.disconnect();
                System.err.println("Connexion refusée.");             
            }
        }
        catch (IOException e)
        {
            if (this.isConnected())
            {
                try
                {
                    this.disconnect();
                }
                catch (IOException f)
                {
                    // do nothing
                }
            }
            System.err.println("Impossible de joindre le serveur.");
            //e.printStackTrace();
        }
 
        try
        {
 
 
            if (!this.login(username, password))
            {
                this.logout();
                error = true;
                System.out.println("Login ou mot de passe non valide");
            }
 
            //System.out.println("Remote system is " + this.getSystemName());
 
            this.setFileType(FTP.BINARY_FILE_TYPE);
 
            this.enterLocalPassiveMode();
 
 
            InputStream input;
 
            input = new FileInputStream(local);
 
            this.storeFile(remote, input);
 
            input.close();
 
            this.logout();
        }
        catch (FTPConnectionClosedException e)
        {
            error = true;
            System.err.println("Server closed connection.");
            //e.printStackTrace();
        }
        catch (IOException e)
        {
            error = true;
            //e.printStackTrace();
        }
        finally
        {
            if (this.isConnected())
            {
                try
                {
                    this.disconnect();
                }
                catch (IOException f){}
            }
        }
 
     return error;
    }
 
   	public boolean TestConnexion(String server) throws SocketException, IOException			//Test si le serveur est joignable
   	{
   		boolean error = false;
 
        this.connect(server);
        int reply = this.getReplyCode();  
        if (FTPReply.isPositiveCompletion(reply))
            {
                this.disconnect();
                System.err.println("Connexion refusée.");             
            }
 
        return error;
   	}
 
 
}
Dites moi rapidement si je suis aux fraises et comment je peux arriver à faire ce que je veux.
Merci