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 :
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 :
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 :
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
reader = new System.IO.StreamReader(response.GetResponseStream());
mais rien n'a changé.
Auriez vous une idée ?
Merci de votre aide
Partager