Bonjour à tous!
J'ai deux méthodes que j'utilise pour la comparaison de fichier Excel (une byte par byte, l'autre avec génération d'une HashKey). Jusqu'ici tout va bien et tout semble fonctionner.
Le hic c'est lorsque je compare deux fichiers excel identiques (un fichier excel quelconque et sa simple copie). Si je n'ouvre pas les fichiers mes deux méthodes retournent bien Vrai, mais si j'en ouvre un des deux et que je relance ma comparaison, alors les deux méthodes retournent Faux.
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 Public Shared Function FilesAreEqual_Byte(ByVal firstFile As FileInfo, ByVal secondFile As FileInfo) As Boolean If Not firstFile.Length = secondFile.Length Then Return False End If Using fs1 As FileStream = firstFile.OpenRead() Using fs2 As FileStream = secondFile.OpenRead() For i As Integer = 0 To firstFile.Length - 1 Step 1 If Not fs1.ReadByte() = fs2.ReadByte() Then Return False End If Next End Using End Using Return True End Function Public Shared Function FilesAreEqual_Hash(ByVal firstFile As FileInfo, ByVal secondFile As FileInfo) As Boolean If Not firstFile.Length = secondFile.Length Then Return False End If Dim firstHash As Byte() = MD5.Create().ComputeHash(firstFile.OpenRead()) Dim secondHash As Byte() = MD5.Create().ComputeHash(secondFile.OpenRead()) For i As Integer = 0 To firstHash.Length - 1 Step 1 If Not firstHash(i) = secondHash(i) Then Return False End If Next Return True End Function
Sachant que ce problème apparaît seulement avec un tableur possédant des formules, est-ce que quelqu'un sait si excel modifie quand même le fichier alors que l'on fait juste l'ouvrir (pas de modif et pas de sauvegarde)? Et y-a-t-il un moyen de remédier à ce problème?
Merci d'avance
Partager