Téléchargement fichiers par WebClient

Signaler
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
11 novembre 2010
-
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
11 novembre 2010
-
Bonjour,
Petit problème; j'utilise afin de télécharger en local une liste de fichiers par ftp, WebClient.

WebClient wc = new WebClient();
....
wc.downloadFile(src,dest);
...

Ensuite, pour traiter leurs contenus, TextReader.
...
TextReader tr = new StreamReader(path, System.Text.Encoding.ASCII,false);
// parcours du fichier
while (tr.Peek() >0){
   ...
}

le problème est que lors de l'importation des fichiers [bêtes fichiers txt], il ne détécte pas que c'est de l'ASCII. Donc, mon TextReader ne detecte pas non plus la fin de la ligne.
Une idée du problème ? lorsque j'ouvre l'un de ces fichier avec le notepad, ils ne contiennent en effet aucun retour à la ligne.

Merci pour votre aide

5 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Bonsoir,
Peut-être en utilisant la property Encoding de la classe WebClient? (pas essayé...)
Et le fichier est bien en ASCII sur le server?

<hr />
-Blog-
-Site Perso-
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
11 novembre 2010

Bonjour,
J'ai essayé mais ça ne marche pas.
Ce qui est bizare, c'est que si je les télécharges par FileZilla, les fichiers sont dans le bon format et les données contenues exploitables. Mais je souhaite automatiser le téléchargement.
Une autre idée ?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Pour l'instant pas d'autres idées non...
Si jamais quelques choses me vient à l'esprit, je ferai signe :)

<hr />
-Blog-
-Site Perso-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

Il y a plusieurs types de transfert en FTP dont notamment binaire (TYPE I) ou ASCII (TYPE A).

Je suppose que par défaut le WebClient utilise les valeurs par défaut pour FtpWebRequest, c'est à dire un transfert en mode binaire alors que ton FileZilla demande peut être un transfert en ASCII (regarde les commandes "TYPE I" ou "TYPE A" dans le log de commande du soft).
Logiquement si le serveur en face gère cette commande, une conversion du contenu du fichier est effectuée lors du transfert, avec notamment changement du type de fin de ligne.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
11 novembre 2010

Salut,
Merci de ta réponse et t'as vu juste concernant FileZilla. J'ai testé WebClient et maintenant FtpWebRequest avec le même resultat.

N'y a-til pas un moyen d'envoyer  bêtement la commande mget * qui marche si bien en mode console [et qui transfert le tout en ASCII] ?

Bonne journée