Bonjour à tous,
J'ai un petit souci de compréhension de l'utilisation des objets me permettant de me connecter en FTP sur un serveur.
Pour le moment j'ai trouvé et j'utilise:
J'ai nettoyé le code (gestion des erreurs retirées...).
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 public void PutFile( string fileName, string UploadDirectory = "") { string PureFileName = new FileInfo(fileName).Name; String uploadUrl = String.Format("{0}{1}/{2}", MyIPAddress + ":" + MyFTPPortAddress , UploadDirectory, PureFileName); Uri myUri = new Uri(uploadUrl); FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create(myUri); req.Proxy = null; req.Method = WebRequestMethods.Ftp.UploadFile; req.Credentials = new NetworkCredential(ClsVar.MyFTPLoginName , ClsVar.MyFTPPassword ); req.UseBinary = true; req.UsePassive = true; byte[] data = File.ReadAllBytes(fileName); req.ContentLength = data.Length; Stream stream = req.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); }
La base de mon code est une conversion VB6 vers un programme C# WPF afin de me mettre au C#.
J'ai besoin d'envoyer plusieurs fichiers, mais je fais des traitements entre chaque envoie en telnet.
Lorsque l'on exécute ce code ci-dessus.
On prépare ce que va faire le ftp avant d'ouvrir vraiment le FTP( Uri, puis FtpWebRequest avec la connexion, l'indication de la "Methode", puis la mise en forme du fichier à envoyer et enfin l'écriture avec le Stream avant la fermeture.
Mon souci c'est que mes fichiers ne sont pas tous dans le même répertoire. Donc je ne voie pas trop comment faire une boucle la dedans, sans avoir à fermer et rouvrir le FTP a chaque fois. J'ai besoin de pouvoir le faire (on a des vieux serveur qui plante si l'on ne ferme pas après chaque envoie), mais c'est plus long, et donc garder la connexion ouverte est plus rapide pour les autres.
Merci de votre aide.
Partager