Bonjour, je suis en BTS Services Informatiques aux Organisations 1ere année depuis le début de celle-çi.

Je suis entrain de développer, sous demande de mon maître d'apprentissage, une petite application qui compare les versions d'un fichier sur mon répertoire à ceux sur une base de donnée.
Je dois maintenant effectuer une tache qui me semble un peu compliqué vu ma connaissance en dev.

Ce que je dois faire:

Je dois comparer deux fichiers, dans une base de donnée et dans mon répertoire local, si mon fichier n'existe pas dans mon répertoire, alors je marque "0" à la place de sa version, dans mon fichier récapitulatif. Et Inversement, si mon fichier n'existe pas dans ma base de donnée, je dois noter "0" dans mon fichier récapitulatif à la place de sa version.

Exemple: (Fichier existant dans mon répertoire, mais n'existe pas dans ma base de donnée, cela donne alors):

NOMDUFICHIER | 0 | VERSIONREPERTOIRE (exemple: 37.15.01.33) | 0/1 (selon si les deux fichiers ont la même version)

Donc voila, j'ai fais la plupart du travail, mais je bloque à ce moment là.

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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
namespace VerifDllsVersion
{
    class Program
    {
        static void Main(string[] args)
        {
 
            Hashtable htDllsInfos = GetDllsInformationFromBase();
            IDictionaryEnumerator iEnum = htDllsInfos.GetEnumerator();
            File.Delete("C:\\Users\\maxursin\\Documents\\VersionsIdentical.log");
            File.Delete("C:\\Users\\maxursin\\Documents\\NotVersionsIdentical.log");
 
            string VersionFileHashtable = htDllsInfos.Values.ToString();
            string path = "C:\\Users\\maxursin\\Documents\\CppDll\\";
            string[] monTab = Directory.GetFiles(path, "CPS?????.dll");
            int TotalDlls = Directory.GetFiles(path, "CPS?????.dll").Length;
            int CompteurCPS = 0;
            string VersionDataBase = string.Empty;
            string VersionDirectory = string.Empty;
            DateTime StartDate = DateTime.Now;
            int compteurNotIdemCps = 0;
            bool V;
 
            while (iEnum.MoveNext() || CompteurCPS < TotalDlls)
            {
                string[] tokins = monTab[CompteurCPS].Split('\\');
                FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo("C:\\Users\\maxursin\\Documents\\CppDll\\" + tokins[5]);
 
                V = File.Exists("C:\\Users\\maxursin\\Documents\\CppDll\\" + tokins[5]);
 
                string[] tokens = iEnum.Value.ToString().Split('.');
                VersionDirectory = myFileVersionInfo.FileVersion;
                string[] tokons = VersionDirectory.Split('.');
 
 
 
 
 
                string ConvertD = tokons[0];
                string ConvertD1 = tokons[1];
                string ConvertD2 = tokons[2];
                string ConvertD3 = tokons[3];
                int ConvertedD = int.Parse(ConvertD);
                int ConvertedD1 = int.Parse(ConvertD1);
                int ConvertedD2 = int.Parse(ConvertD2);
                int ConvertedD3 = int.Parse(ConvertD3);
                VersionDirectory = ConvertedD + "." + ConvertedD1 + "." + ConvertedD2 + "." + ConvertedD3;
 
 
                string Convert = tokens[0];
                string Convert1 = tokens[1];
                string Convert2 = tokens[2];
                string Convert3 = tokens[3];
                int Converted = int.Parse(Convert);
                int Converted1 = int.Parse(Convert1);
                int Converted2 = int.Parse(Convert2);
                int Converted3 = int.Parse(Convert3);
                VersionDataBase = Converted + "." + Converted1 + "." + Converted2 + "." + Converted3;
                CompteurCPS++;
 
                File.AppendAllText("C:\\Users\\maxursin\\Documents\\VersionsIdentical.log",  tokins[5] + " | " + VersionDataBase + " | " + VersionDirectory);
 
                if (VersionDataBase == VersionDirectory)
                {
                    File.AppendAllText("C:\\Users\\maxursin\\Documents\\VersionsIdentical.log", " | 1" + "\r\n");
                }
                else
                {
                    File.AppendAllText("C:\\Users\\maxursin\\Documents\\VersionsIdentical.log", "| 0" + "\r\n");                   
                    compteurNotIdemCps++;
                }
            }
            Console.WriteLine("\r\n" + "There is " + compteurNotIdemCps + " Versions not identical");
            DateTime EndDate = DateTime.Now;
            Console.WriteLine("");
            Console.WriteLine(EndDate.Subtract(StartDate).TotalMilliseconds + " Milliseconds");
            Console.ReadKey();
        }
 
 
 
 
        public static Hashtable GetDllsInformationFromBase()
        {
            Hashtable htDllsInfos = new Hashtable();
 
            SqlConnection sCon = new SqlConnection("Data Source=FRPAVCLU1302\\FRPAVCLU1302;Initial Catalog=OCS_RELEASE37;Integrated Security=SSPI;");
            sCon.Open();
            if (sCon.State == System.Data.ConnectionState.Open)
            {
                SqlCommand sCommand = new SqlCommand("select DllName, Version from OcsCPSDlls where DllName like 'cps%'", sCon);
                SqlDataReader dataReader = sCommand.ExecuteReader();
                while (dataReader.Read())
                {
                    htDllsInfos.Add(dataReader[0], dataReader[1]);
                }
            }
            sCon.Close();
            return htDllsInfos;
        }
    }
}
Merci de votre aide, bonne journée