Bonjour à tous,
Je viens à vous pour un problème qui commence à me courir sérieusement.
Voilà la situation, pour le moment, tous les jours, je remonte via Filezilla, à la main, un fichier csv sur ma bécane, généré par un script .Net, sur un serveur FTP.
Je voulais automatiser ça, mais j'obtiens l'eexception suivante:
Avec le code ci-dessous:The requested uri is invalid for this ftp command
Le duo user/mot de passe est bon, le fichier est bien à l'adresse indiquée.
Code csharp : 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 // appel uploadFile("ftp://monServeur/", "c:/monFichier.csv"); // fonction public void uploadFile(String pRemoteServerURI, String pLocalFileUri) { Uri remoteServerURI = new Uri(pRemoteServerURI); Uri localFileUri = new Uri(pLocalFileUri); Stream sr = null; FileStream fs = null; if (remoteServerURI.Scheme != Uri.UriSchemeFtp) { Console.WriteLine("<<< EXCEPTION : C'est pas du FTP"); } else { if (localFileUri.Scheme != Uri.UriSchemeFile) { Console.WriteLine("<<< EXCEPTION : C'est pas un fichier local"); } else { try { FtpWebRequest fwr = (FtpWebRequest)WebRequest.Create(remoteServerURI); fwr.Method = WebRequestMethods.Ftp.UploadFile; NetworkCredential cred = new NetworkCredential("monUser", "monPass"); fwr.Credentials = cred; sr = fwr.GetRequestStream(); fs = File.Open(localFileUri.OriginalString, FileMode.Open); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, (int)fs.Length); sr.Write(buffer, 0, (int)fs.Length); sr.Close(); FtpWebResponse fwp = (FtpWebResponse)fwr.GetResponse(); } catch (Exception ex) { Console.WriteLine("<<< EXCEPTION : " + ex.Message); } finally { if (sr != null) { sr.Close(); } if (fs != null) { fs.Close(); } } } } }
Quand je me logge sur filezilla, dans host, je mets juste "monServeur". Mais si je ne mets que ça dans la chaine pour appeler ma fonction, ça m'envoie direct une URIFormatException. Et ceci dès la première ligne de la fonction, celle-ci:
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part Uri remoteServerURI = new Uri(pRemoteServerURI);
Comment je peux faire pour contourner ce problème? Quelqu'un a une idée?
Merci d'avance!
Partager