Les Snippets

Connexion

SAVOIR SI DEUX FICHIERS SONT IDENTIQUES

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 29/01/2010 14:27:16 et initié par elguevel [Liste]
Vue : 675
Catégorie(s) : Cryptage, Fichier / Disque, Algorithme
Langages dispo pour ce code :
- VB 2005, VB 2008



Langage : VB 2005 , VB 2008
Date ajout : 01/02/2010
Posté par elguevel [Liste]

''' <summary>
''' Compare le contenu de deux fichiers 
''' </summary>
''' <param name="FichierA">Chemin du premier fichier à comparer</param>
''' <param name="FichierB">Chemin du second fichier à comparer</param>
''' <returns>Vrai si identique, sinon faux</returns>
Public Function EstIdentique(ByVal FichierA As String, ByVal FichierB As String) As Boolean

 Const BufferSize As Integer = 8192 ' 8Ko

 Dim Retour As Boolean = True

 ' Verification existance fichiers
 If (Not File.Exists(FichierA)) Then
  Throw New IOException("Le fichier A n'existe pas !")
 End If

 If (Not File.Exists(FichierB)) Then
  Throw New IOException("Le fichier B n'existe pas !")
 End If

 ' Nos buffers de travail
 Dim bufferA(BufferSize) As Byte
 Dim bufferB(BufferSize) As Byte

 ' Ouverture du premier fichier A
 Dim fA As New FileStream(FichierA, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize)

 ' Ouverture du second fichier B
 Dim fB As New FileStream(FichierB, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize)

 Dim LuA As Integer = bufferA.Length
 Dim LuB As Integer = bufferB.Length

 Try

  Do
   ' Copie les 8 Ko suivant du flux dans les buffers
   LuA = fA.Read(bufferA, 0, bufferA.Length)
   LuB = fB.Read(bufferB, 0, bufferB.Length)

   ' On verifie que nous avons lu le meme nombre d'octet sur chaque flux
   If (LuA = LuB) Then

    ' Comparaison octet à octet
    For cpt As Integer = 0 To (bufferA.Length - 1)

     If (bufferA(cpt) <> bufferB(cpt)) Then
      Retour = False   ' Les fichiers ne sont pas identiques
      Exit Do          ' On sort, plus besoin de continuer
     End If

    Next

   Else
    Retour = False   ' Les fichiers ne sont pas identiques
    Exit Do          ' On sort, plus besoin de continuer
   End If

   ' On continu si on peut encore en lire
  Loop While (LuA > 0 And LuB > 0)

 Catch ex As Exception

  Throw New Exception("Erreur pendant l'execution de EstIdentique", ex)

 Finally

  ' Ferme fichier A
  If (Not fA Is Nothing) Then
   fA.Close()
   fA.Dispose()
  End If

  ' Ferme fichier B
  If (Not fB Is Nothing) Then
   fB.Close()
   fB.Dispose()
  End If

 End Try

 Return Retour

End Function


Snippets en rapport avec : File, Fichier, Crc, Checksum, Identique



Codes sources en rapport avec : File, Fichier, Crc, Checksum, Identique

{C# / C#.NET} CHECK IDENTICAL FILES
Juste un petit code d'avant vacances qui permet de lister les fichiers identiques dans un répertoire...

{C / C++ / C++.NET} [C++] HASH FINDER - CALCULATEUR DE HASH
Me revoilà comme prévu avec cette version C++ avec une interface graphique compatible Windows et Lin...

{} NOM FICHIER
Validation du nom d'un fichier. - Accepte : File.txt | C:\Data\..\.\CodeSSourceS.Regex\MonFichier...

{Visual Basic, VB6, VB.NET, VB 2005} FAT RECOVER : RÉCUPÉRER LES FICHIERS EFFACÉS DE VOS PARTITIONS FAT (CARTE MÉMOIRE ET CO)
Ce code permet de récupérer les fichiers effacés sur les partitions FAT12, FAT16 et FAT32. Pour cela...

{PHP} CLASSE DIRECTORYITERATOR POUR PHP4
Dans le cadre d'un de mes projets, j'utilise la classe PHP 5 DirectoryIterator vraiment utile pour l...

{Visual Basic, VB6, VB.NET, VB 2005} ENREGISTRER ET CHARGER LISTVIEW DANS FICHIER AVEC IMAGE ETC...
Salut a tous, Voici un ptit code pour enregistrer une listview dans un fichier et la recharger de...

{JAVA / J2EE} CLASS FILE UTILITIES / CLASSE UTILITAIRE DE MANIPULATION DE FICHIERS
Petite classe toute bête de manipulation de fichiers, simple mais tellement utile ;) voila, si ça p...

{Visual Basic, VB6, VB.NET, VB 2005} MODIFICATIONS NOM DE FICHIERS DANS UN MÊME RÉPERTOIRE
C'est un tout petit code tout simple mais qui est pratique si on veut modifier rapidement les noms d...

{Visual Basic, VB6, VB.NET, VB 2005} CALCUL CHECKSUM (CRC32) DE FICHIER
Petit exemple de calcul de CRC32 de fichier...

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE DE GESTION DES FICHIERS/DOSSIERS ==> INFOS (DATES, COPYRIGHT...), LISTING, COPIER, CORBEILLE, BOITES DE DIALOGUE ... LE TOUT PAR APIS
Ce code est une classe qui permet de faire différentes actions sur les fichiers et les dossiers, à s...