Copier des fichiers sur un serveur distant

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 15 févr. 2006 à 16:40
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 17 févr. 2006 à 16:34
Bonjour, je cherche à copier des fichiers vers un serveur ftp par le biais d'un programme C#. Je n'ai pas trouvé les renseignements sur msdn. Pourriez-vous m'indiqueer comment faire ?

Merci d'avance.

Mathmax

12 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 févr. 2006 à 16:47
Salut,

As tu regardé si ces sources peuvent t'aider ?



Mx
MVP C#
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
15 févr. 2006 à 17:17
Je n'ai pas besoin d'un truc si compliqué. Je ne cherche pas à faire d'interface pour un serveur. En gros je voudrais faire un trcu comme celà :

File.Copy(MyFileInfo.FullName, @"ftp://ftp.orkos.com/NewsLetter/"
+ MyFileInfo.Name,
true);

sauf que l'adresse ftp://ftp.orkos.com/NewsLetter/, n'est pas reconnu. Comment faire pour qu'elle le soit ?


Mathmax
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 févr. 2006 à 17:29
Salut,

.Net 2.0 fournis des classes FtpWebRequest et FtpWebResponse.
Un petit tour dans la doc te permettra de voir des exemples.

/*
coq
MVP Visual C#
*/
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 févr. 2006 à 17:34
Voila..
Sinon, ce ne sera pas aussi simple que File.Copy. C'est pour cela que je te renvoyais vers les sources, pour que tu regardes un peu comment ils s'y prenaient.
Autrement, il y a plusieurs librairies sur le net (une simple recherche google t'aidera a les trouver), et plusieurs sujets en parlent sur le forum.



Mx
MVP C#
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
15 févr. 2006 à 17:53
Je ne trouve rien sur msdn à propos des classes FtpWebRequest et FtpWebResponse :

http://search.msdn.microsoft.com/search/results.aspx?view=fr-fr&st=b&na=82&qu=FtpWebResponse&s=1
http://search.msdn.microsoft.com/search/results.aspx?view=fr-fr&st=b&na=82&qu=FtpWebRequest&s=1

Ais-je mal cherché ? Je suis étonné car souvent je ne trouve pas ce que je cherche sur MSDN. Je cherche au mauvais endroit ?

Mathmax
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 févr. 2006 à 17:55
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
17 févr. 2006 à 15:09
Merci pour lien vers msdn2. Je ne savais pas qu'il y avait une bibliothèque pour le .net 2.0, distincte de celle du 1.
Une première chôse qui m'étonne cependant est comment as tu fais pour accéder à cette page ? Quand je tape
FtpWebResponse dans le cadre de recherche de la page d'accueil de msdn2 (http://msdn2.microsoft.com/fr-fr/library/default.aspx), je ne trouve pas dans les résultats la page que tu m'as donnée. Pourrais-tu m'indiquer le chemin que tu as suivi pour trouver cette page ?

Sur la page que tu m'as donnée, j'ai trouvé un lien vers cette page :
http://msdn2.microsoft.com/fr-fr/library/system.net.ftpwebrequest.aspx

Sur cette page, il y a un exemple illustrant "l'utilisation d'opérations asynchrones pour télécharger un fichier vers un serveur FTP". Ca semble correspondre à ce que je veux faire. Mais il y plusieurs points qui me posent problème :

- d'abord que signifie opérations asynchrones ? A quoi celà sert-il ?

- tout le code qui est affiché est-il nécéssaire pour faire une simple copie vers un serveur ftp ?

- quand j'essai d'axécuter ce code avec comme valeur pour target :

Uri target = new Uri(@"ftp://ftp.orkos.com/%2fNewsLetter/");

j'obtient le message d'erreur suivant :

System.Net.WebException: The requested URI is invalid for this FTP command.
at System.Net.FtpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)
at WindowsApplication10.Form1.EndGetStreamCallback(IAsyncResult ar) in D:\Mes documents\Visual Studio 2005\Projects\WindowsApplication10\WindowsApplication10\Form1.cs:line 961

et la ligne 961 est la suivante (que l'on retrouve dans EndGetStreamCallback) :


requestStream = state.Request.EndGetRequestStream(ar);

merci pour ton aide


Mathmax
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 févr. 2006 à 15:50
Salut,

-Pour trouver l'adresse, j'ai fait une recherche google ;) "FTPWebResponse MSDN2"

-Un Appel asynchrone : Un appel non bloquant

-Tout le code a l'air necessaire, oui

-Pour ton erreur, ce n'est pas une question de droit en ecriture sur le repertoire ? (URI invalid for this FTP Command, ca veut dire que la commande STOR (UploadFile) n'est pas valide pour cette URI)



Mx
MVP C#
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
17 févr. 2006 à 16:12
C'est étonnant que l'on ne puisse pas accéder à cette page depuis la mage d'acceuil de msdn2 et qu'il faille passer par google pour y arriver, non ?

Qu'appelles-tu un appel non bloquant ? Qu'est ce qu'un appel bloquant ?

Pourquoi à ton avis, @ftp://ftp.orkos.com/%2fNewsLetter/ n'est pas valide pour UploadFile ?


Mathmax
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 févr. 2006 à 16:23
MSDN2 FR n'est pas encore complètement en ligne, mais si tu recherches sur la version en-us tu n'auras pas de problème.

/*
coq
MVP Visual C#
*/
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 févr. 2006 à 16:28
Tu peux aussi y acceder en naviguant dans les menus, ou via la recherche...

Asynchrone, donc non bloquant, ca veut dire que le programme n'attend pas la fin de l'execution appelée (en Asynchrone) pour continuer l'application

Et pour la question a propos de UploadFile, ca doit dependre de comment le FTP est configuré. Mais si ca se trouve, l'erreur n'est pas de la. Si quelqu'un pouvait confirmer..



Mx
MVP C#
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 févr. 2006 à 16:34
J'ai oublié 3 mots...

Asynchrone, donc non bloquant, ca veut dire que le programme n'attend pas la fin de l'execution de la méthode appelée (en Asynchrone) pour continuer l'application



Mx
MVP C#
0
Rejoignez-nous