Bonjour à toute la communauté !


Je viens vers vous suite à un problème rencontré subitement sur une boucle foreach faite sur un tableau !

Mon problème est simple... Tout fonctionnait à merveille... Mais lorsque j'ai ajouté la référence System.Configuration et utilisé le fichier de configuration App.config cette fameuse boucle à cessé de fonctionner.

Lorsque je place un Console.WriteLine(); dedans rien ne s'affiche !

Je n'arrive pas à comprendre pourquoi...


App.config
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="sourcePath" value="C:\Faultwin\source\"/>
    <add key="targetPath" value="C:\Faultwin\target\"/>
    <add key="sourceExtension" value=".log"/>
    <add key="targetExtension" value=".txt"/>
  </appSettings>
</configuration>
Program.cs
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
/*
 * Auteur : LhtlDrn
 * Date : 06/07/2012
 * 
 */
 
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
 
namespace Faultwin
{
    /// <summary>
    ///  Copie un fichier de A vers B.
    ///  Renomme le fichier avec la date du jour (yyyyMMdd).
    ///  Change l'extension du fichier.
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            string sourcePath = ConfigurationManager.AppSettings["sourcePath"];
            string targetPath = ConfigurationManager.AppSettings["targetPath"];
            string sourceExtension = ConfigurationManager.AppSettings["sourceExtension"];
            string targetExtension = ConfigurationManager.AppSettings["targetExtension"];
            string dateToday = DateTime.Now.Date.ToString("yyyyMMdd");
 
            // Liste tout les fichiers .txt du répertoire sourcePath
            string[] sourceFileTab = Directory.GetFiles(sourcePath, sourceExtension);
            foreach (string sSource in sourceFileTab)
            {
                try
                {
                    string sTarget = Path.Combine(targetPath, Path.GetFileName(sSource));
 
                    // Copie le fichier de "sSource" vers "sTarget"
                    File.Copy(sSource, sTarget, true);
 
                    if (File.Exists(sTarget))
                    {
                        Console.WriteLine("{0} copied to {1}", sSource, sTarget);
                    }
 
                    // Renommer et change l'extension du fichier
                    File.Move(sTarget, Path.Combine(targetPath, dateToday + targetExtension));
 
                    if (File.Exists(Path.Combine(targetPath, dateToday + targetExtension)))
                    {
                        Console.WriteLine("{0} changed to {1}", sSource, Path.Combine(targetPath, dateToday + targetExtension));
                    }
 
                    // Supprime le fichier de "sSource"
                    File.Delete(sSource);
 
                    if (!File.Exists(sSource))
                    {
                        Console.WriteLine("{0} deleted", sSource);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("The process failed: {0}", ex.ToString());
                }
            }
 
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
 
    }
 
}
Avez-vous une petite idée ?

D'autre part, si vous avez des commentaires à faire sur ce petit morceau de code n'hésitez surtout pas ! J'aimerais faire les choses proprement, du moins apprendre à le faire ainsi.