Bonjour,

J'ai un fichier ODT dans lequel se situent des liens, ces liens mènent vers des documents ressources sur internet.

L'objectif de mon programme est de télécharger les fichiers (liens qui se trouvent dans le fichier ODT).

Le problème est que quand j'exécute le programme, je retrouve dans mon dossier dans lequel sont censés se stocker les nouveaux fichiers, un fichier du nom de Download.aspx avec comme extension : ASP.NET Server Page.

Je ne comprends pas pourquoi ça ne télécharge pas mes fichiers, pourtant j'ai bien mis comme paramètre ma variable link qui est le résultat des matchs de l'expression régulière.

Voici le code concerné par la recherche de liens et le traitements de ces derniers :
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
// Recherche tous les liens qui commencent par "applnet.test.fr"
            string pattern = @"http://applnet\.test\.fr/GetContenu/Download\.aspx\?p1=.*?;p2=.*?;p5=.*?;p6=NOPUB";
            Regex regex = new Regex(pattern);
            MatchCollection matches = regex.Matches(contentXml);
 
            Directory.CreateDirectory(Path.GetDirectoryName(odtFilePath));
 
            // Traite chaque lien trouvé
            foreach (Match match in matches)
            {
                string link = match.Value;
 
                string[] parts = link.Split(new string[] { "aspx?" }, StringSplitOptions.None);
                string queryString = parts[parts.Length - 1];
 
 
 
                string[] parameterParts = Regex.Split(link, "(?<=aspx\\?)");
 
                // Télécharge le document intranet correspondant
                string newFileName = Path.GetFileName(new Uri(link).LocalPath);
                string folderName = Path.GetFileNameWithoutExtension(odtFilePath);
                string subFolderName = "PJ - " + folderName;
                string localFilePath = "C:/PiecesJointes/";
                string onlineFilePath = "https://com.test.fr/files/test/test/" + queryString;
 
 
 
 
                using (WebClient client = new WebClient())
                {
                    client.DownloadFile(link, localFilePath + newFileName);
                }
 
                // Remplace le lien par le chemin du document téléchargé
                string newLink = localFilePath.Replace("\\", "/");
                contentXml = contentXml.Replace(link, onlineFilePath);
            }