IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème encodage ?


Sujet :

C#

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Par défaut Problème encodage ?
    Bonjour,

    J'ai une fonction qui liste sur un serveur FTP la liste des fichiers présents.
    Jusqu'à présent cela fonctionnait bien mais depuis cette semaine, nous avons des postes clients qui n'arrive plus à lister les fichiers sur le FTP.

    Voici la fonction qui liste les fichiers :

    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
    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
    55
    56
    57
    58
    59
     
    public static List<String> ListFileFTP(string login, string password, string pathFTP)
    {
         List<String> listFichiers = new List<string>();
         System.Net.WebRequest ftpRequest = null;
         System.Net.FtpWebResponse response = null;
         System.IO.StreamReader reader = null;
     
         try
         {
               ftpRequest = System.Net.FtpWebRequest.Create(pathFTP + "/");
               ftpRequest.Credentials = new System.Net.NetworkCredential(login, password);
                ftpRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectory;
                response = (System.Net.FtpWebResponse)ftpRequest.GetResponse();
     
                    reader = new System.IO.StreamReader(response.GetResponseStream());
     
                    string line = reader.ReadLine();
                    if (line != null)
                    {
                        listFichiers.Add(line);
                    }
     
                    while (line != null)
                    {
                        line = reader.ReadLine();
                        if (line != null)
                        {
                            listFichiers.Add(line);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new ExceptionRegle(String.Format("Il n'est pas possible de se connecter au serveur FTP : {0}. Détail de l'exception : {1}.", pathFTP, ex.Message));
                }
                finally
                {
                    if (reader != null)
                    {
                        reader.Close();
                        reader.Dispose();
                        reader = null;
                    }
     
                    if (response != null)
                    {
                        response.Close();
                        response = null;
                    }
     
                    if (ftpRequest != null)
                    {
                        ftpRequest = null;
                    }
                }
     
                return listFichiers;
            }
    Sur certains postes, dès qu'on appel "reader.ReadLine()" voici ce qu'il nous retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD><TITLE>Directory /Deversement/S1/ at  </TITLE></HEAD><BODY><H1>Directory /Deversement/S1/ at</H1>
    <p><a href="..">Up to higher level directory</a></p
    <td><a href="S1_23_ADR2_25012013_100517.dat">S1_23_ADR2_25012013_100517.dat</a></td></tr>
    etc...
    On voit dans cet exemple le fichier .dat que je dois récupérer dans ma liste.

    Les autres postes récupère bien correctement les fichiers comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    S1_23_ADR2_25012013_100517.dat
    S1_23_ADR2_25012013_100518.dat
    S1_23_ADR2_25012013_100519.dat
    etc...
    Il faut savoir que certains postes clients ont changé de Domaine réseau, mais je ne pense pas que le problème vienne de là.

    J'ai pensé que sa pouvait venir de l'encodage dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     reader = new System.IO.StreamReader(response.GetResponseStream());
    mais rien n'a changé.

    Auriez vous une idée ?

    Merci de votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Par défaut
    J'ai trouvé la réponse, il faut rajouter cette ligne dans le code si au niveau du réseau on est derrière un proxy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftpRequest.Proxy = null;

Discussions similaires

  1. Problème encodage de certains caractères
    Par marieR dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 14/12/2006, 15h55
  2. Réponses: 4
    Dernier message: 28/09/2006, 20h20
  3. [DOM] Problème encodage
    Par spilliaert dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 05/06/2006, 16h26
  4. Probléme encodage caractéres spéciaux MYSQL
    Par FoxLeRenard dans le forum Installation
    Réponses: 1
    Dernier message: 20/02/2006, 12h10
  5. Réponses: 1
    Dernier message: 02/02/2006, 23h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo