Bonjour,

J'essaye de télécharger un fichier sur un serveur via FTP dans C# et cela ne fonctionne pas tout à fait car il semble y avoir un problème d'encodage du fichier téléchargé.

Voici mon code:

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
 
string inputfilepath = @"C:\Temp\S102.ETACT";
string ftphost = "monHote"; 
string ftpfilepath = "/S102.ETACT";
 
string ftpfullpath = "ftp://" + ftphost + ftpfilepath;
 
WebClient request = new WebClient();
request.Credentials = new NetworkCredential("user", "psw");
request.Encoding = Encoding.ASCII;
 
byte[] fileData = request.DownloadData(ftpfullpath);
 
FileStream file = File.Create(inputfilepath);
file.Write(fileData, 0, fileData.Length);
file.Close();
Cela me donne un fichier avec des caractères non-lisibles et pourtant, si j'utilise FileZilla pour télécharger le fichier et que je spécifie que le transfert doit se faire en ASCII, tout est parfait sur le fichier téléchargé.

J'ai aussi essayé de convertir le fichier seulement après le téléchargement en utilisant string fileString = Encoding.ASCII.GetString(fileData). J'ai aussi essayé de lire le fichier en utilisant byte[] fileData = File.ReadAllBytes(ftpfullpath) sans plus de succès.

Est-ce que vous auriez une piste de solution pour moi?

Merci de votre aide!