FTP + C#

Signaler
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007
-
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007
-
Bonjour a tous,

J'ai un problème sur lequel je reste bloqué depuis quelques temps, je dois récupérer un fichier "toto" en ftp sur cette procédure :

connexion à l'hote distant :      ftp 1.1.1.1
 login :                                    login
pwd                                       pwd
télechargement fichier:            get toto
fin :                                         quit

Je dois donc excécuter ce code sur l'action d'un bouton mais je ne sais pas quoi utiliser comme commandes...

merci beaucoup !
A voir également:

20 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Je te conseille d'utiliser cette source sur CodeProject : http://www.codeproject.com/vb/net/FtpClient.asp

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

J'avais déja regardé des classes "FtpWebRequest" mais je ne peux pas passer via "ftp://" pour récupérer mon fichier, je dois absolument le récupérer en mode console ...

Je débute en C# et je ne sais pas exactement comment m'y prendre pour intéger ces fonctions ni laquelle choisir ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
hum... le lien que je t'ai filé te propose en téléchargement une classe C# qui fait ca toute seule ! et en plus elle fonctionne super bien !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Je vais essayer de tester tout cela, merci pour ton aide !

Le problème que j'ai c'est que je comprend comment la classe est construite mais j'ai un peu de mal à l'implémenter dans mon code ...

sur mon bouton :

public
void ButtonSave_OnClick ()
{
   connexion ftp
   login
   pwd
   get toto
   quit
}
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
il suffit de faire tout simplement !

FtpClient fc = new FtpClient("ftp.serveur.com", "user", "pwd");
fc.Download("toto.txt", @"c:");

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

je viens de tester et cela me renvoie une erreur comme quoi la méthode "download" ne prend d'arguments "2" ...
 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
tu as aussi le droit de corriger ;)

FtpClient fc = new FtpClient("ftp.serveur.com", "user", "pwd");
fc.Download("toto.txt", @"c:\toto.txt", true);

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Voila, cela me renvoie cette erreur car je ne peux pas attaquer le ftp directement sn ftp://adresseIP, je dois me conneter uniquement sur



"ftp adresseIP", j'ai modifié les propriétées de _hostname mais rien n'y fait, jte remercie de m'aider et de ta patience lol, je ne suis pas encore tres au point sur le C#...






URI non valide : Impossible de déterminer le format de l'URI.







Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.UriFormatException: URI non valide : Impossible de déterminer le format de l'URI.

Erreur source:



Ligne 485 :        {
Ligne 486 :            //create request

Ligne 487 :            FtpWebRequest result = (FtpWebRequest)FtpWebRequest.Create(URI);
Ligne 488 :            //Set the login details
Ligne 489 :            result.Credentials = GetCredentials();







Fichier source :

C:\Documents and Settings\Administrateur\Mes documents\Developpement\Modifs en cours\SNSTechNetWeb V3\Engine\FtpClient.cs    Ligne : 487
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
Ceci devrait fonctionner:

string ftpUri =
ftp://212.78.204.233;

FtpWebRequest result = (
FtpWebRequest)
FtpWebRequest.Create(ftpUri);

<hr />
-Blog-
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Je pense que cela ne pourra pa marcher car je ne peux pas me conecter sur le produit pour telecharger le fichier via un navigateur web ou en tapant ftp://adresse
je dois lancer la commande ftp 212.78.204.233 puis me logger et faire un get toto pour telecharger le fichier, j'ai peur que le webclient ne puisse pas prendre cette demarche en compte !!!

qu'en pense tu, est ce que je peux quand meme telecharger le fichier ?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
je crois que je vais craquer...

as-tu au moins essayer le bout de code que je t'ai donné ???

FtpClient fc = new FtpClient("212.78.204.233", "user", "pwd");
fc.Download("toto.txt", @"c:\toto.txt", true);

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

désolé, mais c'est bon, je vais trouver ...Biensur, j'ai testé le code que tu m'avais donné mais j'avais une erreur car le WebClient n'avais pas de réponse du serveur distant... donc je suis en train de chercher pourquoi je n'arrive pas à me connecter dessus ..

Merci encore pour ton aide, je vais continuer à chercher et si tu as un éclair, une idée lol, je suis prenneur...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ok... Déjà, je n'ai jamais dit qu'il fallait utiliser le WebClient !

Je t'ai dit de télécharger la classe FtpClient qui se trouve sur CodeProject... avec ce code là, ca marche tout seul !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Oui, je me suis mal exprimé ce n'ai pas webclient, j'ai bien utilisé tout ce que tu m'as donnée mais ce que je voulais dire c'est que j'ai une erreur :

using (FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())

C'est pour cela que je pensais que la requête sur le serveur n'étais pas bonne ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
peux-tu nous montrer comment tu utilises le code que je t'ai fourni ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

public



void
ButtonSave_OnClick(

object
sender, System.Web.UI.

ImageClickEventArgs
e){


   FTPclient
fc =

new



FTPclient
(

"64.215.98.160"
,

""
,

"7891"
);
   fc.Download(

"toto"
,

@"c:\toto"
,

true
);
}

Voila, je n'ai pas de nom d'utilisateur pour pénétrer sur le serveur ! je l'ai laissé vide mais jai aussi testé avec "anonymous" ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ah ok... t'es en asp.net ;)

le dossier de destination doit-être un dossier dans lequel tu as le droit d'écrire... hors là c:\, c'est interdit !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

J'ai fait les modifications de répertoire mais j'ai une nouvelle erreur , erreur Le serveur distant a retourné une erreur : (502) Commande non implémentée.

la méthode de utilisée de download n'est peut être pas prise en compte sur le serveur distant...
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Le serveur marche tres bien en Local (sur un serveur filezilla et une copie de fichier) cependant je pense que la copie de fichier ne s'applique pas a mon cas, il faudrais faire une copie binaire car c'est un fichier de configuration que je dois télécharger ...

d'ou peut être l'erreur 502
Messages postés
25
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
10 septembre 2007

Re bonjour,

Je ne sais pas si vous suivez encore ce thème mais votre aide me serait tres précieuse une dernière fois, en effet , j'ai trouvé la source du problème, il faut télécharger le fichier mais en mode actif et je ne sais pas comment implémenter cette commande dans la classe FTPClient.

help lol,

je vous remerci beaucoup, c'est tres important pour moi...

merci