Bonjour tout le monde,

Je débute en c# et je souhaite faire un client ftp.

J'ai quelque problème avec l'upload d'un fichier, dont voici le code:


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
public bool Upload(string fileName, string inputFilePath)
        {
            Uri serveurUri = new Uri(adresse_ftp + "/" + fileName);
 
            FtpWebRequest myRequest = (FtpWebRequest)FtpWebRequest.Create(serveurUri);
            myRequest.Credentials = new NetworkCredential(login_ftp, password_ftp);
            myRequest.Timeout = timeout;
            myRequest.KeepAlive = false;
            myRequest.Method = WebRequestMethods.Ftp.UploadFile;
 
            FileStream stream = File.OpenRead(inputFilePath);
            byte[] buffer = new byte[2000];
            int ByteLu = 0;
            Stream reqStream=null;
 
            reqStream = myRequest.GetRequestStream();
 
            do
            {
                ByteLu = stream.Read(buffer, 0, buffer.Length);
                try
                {
                    reqStream.Write(buffer, 0, ByteLu);
                }
                catch
                {
                    stream.Close();
                    return false;
                }
                reqStream.Flush();
            } while (ByteLu != 0);
 
            stream.Close();
 
            reqStream.Close();
 
            return true;
 
        }
Tout se passe bien, sauf lorsque je simule des coupures. Lorsque je simule une coupure pendant le transfert, l'exception se déclenche à l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
reqStream.Write(buffer, 0, ByteLu);
normal.
A l'appel du prochain upload, il n'y a toujours pas de probleme. Je simule une deuxieme coupure, exception à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
reqStream.Write(buffer, 0, ByteLu);
toujours normal
Je relance relance la methode et la , l'application se bloque a l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
reqStream = myRequest.GetRequestStream();
Si vous avez des réponses ce serait cool!

Merci