Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment créer une fonction de comparer des fichiers dans Visual C#

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 320348
Pour une version de Microsoft Visual Basic .NET de cet article, voir 320346.

Cet article se réfère à l'espace de noms bibliothèque de classes Microsoft .NET Framework suivant :
  • System.IO

DE CETTE TÂCHE

Résumé
Cet article étape par étape explique comment comparer deux fichiers pour vérifier si leur contenu est identiques. Cette comparaison recherche au contenu de deux fichiers, pas aux noms de fichiers, magasins, dates, heures ou autres attributs.

Cette fonctionnalité est semblable à le MS-DOS basé Fc.exe utilitaire qui est inclu avec différentes versions de Microsoft Windows et MS-DOS de Microsoft et avec certains outils de développement.

Le code exemple décrit dans cet article effectue une comparaison octet par octet jusqu'à ce qu'il trouve une incompatibilité ou il atteint la fin du fichier. Le code effectue également deux vérifications simples pour augmenter l'efficacité de la comparaison :
  • Si les deux fichier de point de références au même fichier, les deux fichiers doivent être égales.
  • Si la taille des deux fichiers n'est pas la même, les deux fichiers ne sont pas les mêmes.
back to the top

Pour créer l'exemple

  1. Créez un nouveau projet d'application Windows de Visual C#. Par défaut, Form1 est créé.
  2. Ajoutez deux contrôles zone de texte à l'écran.
  3. Ajouter un bouton de commande à l'écran.
  4. Dans le menu Affichage , cliquez sur code .
  5. Ajoutez l'instruction USING suivante à la classe Form1 :
    using System.IO;					
  6. Ajoutez la méthode suivante à la classe Form1 :
    // This method accepts two strings the represent two files to // compare. A return value of 0 indicates that the contents of the files// are the same. A return value of any other value indicates that the // files are not the same.private bool FileCompare(string file1, string file2){     int file1byte;     int file2byte;     FileStream fs1;     FileStream fs2;     // Determine if the same file was referenced two times.     if (file1 == file2)     {          // Return true to indicate that the files are the same.          return true;     }                    // Open the two files.     fs1 = new FileStream(file1, FileMode.Open);     fs2 = new FileStream(file2, FileMode.Open);               // Check the file sizes. If they are not the same, the files         // are not the same.     if (fs1.Length != fs2.Length)     {          // Close the file          fs1.Close();          fs2.Close();          // Return false to indicate files are different          return false;     }     // Read and compare a byte from each file until either a     // non-matching set of bytes is found or until the end of     // file1 is reached.     do      {          // Read one byte from each file.          file1byte = fs1.ReadByte();          file2byte = fs2.ReadByte();     }     while ((file1byte == file2byte) && (file1byte != -1));          // Close the files.     fs1.Close();     fs2.Close();     // Return the success of the comparison. "file1byte" is      // equal to "file2byte" at this point only if the files are         // the same.     return ((file1byte - file2byte) == 0);}					
  7. Collez le code suivant de l'événement Click du bouton de commande :
    private void button1_Click(object sender, System.EventArgs e){   // Compare the two files that referenced in the textbox controls.   if (FileCompare(this.textBox1.Text, this.textBox2.Text))      {         MessageBox.Show("Files are equal.");      }   else      {         MessageBox.Show("Files are not equal.");      }  } 					
  8. Enregistrer, puis exécutez l'exemple.
  9. Fournir les chemins d'accès complets aux deux fichiers dans les zones de texte, puis cliquez sur le bouton de commande.
back to the top
Références
Pour plus d'informations, reportez-vous au adresse aux sites Web de Microsoft aux adresses suivantes :
Accès de fichier dans la classe FileStream
(http://msdn2.microsoft.com/en-us/library/Aa903246(VS.71).aspx)
back to the top

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 320348 - Dernière mise à jour : 11/26/2007 02:07:26 - Révision : 1.6

Microsoft Visual C# .NET 2002 Initiation, Microsoft Visual C# 2005 Express Edition

  • kbmt kbhowtomaster kbio KB320348 KbMtfr
Commentaires