Eine Funktion zum Vergleichen-Datei in Visual C# erstellen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 320348 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt, wie Sie zwei Dateien vergleichen, um festzustellen, ob ihr Inhalt identisch sind. Dieser Vergleich untersucht den Inhalt der beiden Dateien nicht auf die Dateinamen, Standorte, Datumsangaben, Zeiten oder andere Attribute.

Diese Funktion ist ähnlich wie das MS-DOS-basierten Fc.exe Dienstprogramm, das mit verschiedenen Versionen von Microsoft Windows und Microsoft MS-DOS, und einige Entwicklungstools enthalten.

Der Beispielcode, der in diesem Artikel beschriebene führt Byte für Byte-Vergleich bis es einen Konflikt findet oder das Ende der Datei erreicht wird. Der Code führt auch zwei einfache Überprüfungen, um die Effizienz des Vergleichs zu erhöhen:
  • Wenn beide Dateinamen auf die selbe Datei zeigen, müssen die beiden Dateien gleich sein.
  • Wenn die Größe der beiden Dateien nicht identisch ist, sind die beiden Dateien nicht identisch.

Zum Erstellen des Beispiels

  1. Erstellen Sie ein neues Visual C# Windows-Anwendungsprojekt. Standardmäßig wird Form1 erstellt.
  2. Fügen Sie zwei Textbox-Steuerelemente auf das Formular.
  3. Fügen Sie eine Befehlsschaltfläche zum Formular.
  4. Auf der Ansicht Menü, klicken Sie auf Code.
  5. Fügen Sie Folgendes ein VERWENDUNG Anweisung, um die Form1 Klasse:
    using System.IO;
    					
  6. Die folgende Methode zum Hinzufügen der Form1 Klasse:
    // 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. Fügen Sie folgenden Code in der Klicken Sie auf Ereignis der Befehlsschaltfläche:
    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. Speichern Sie und führen Sie das Beispiel aus.
  9. Geben Sie die vollständige Pfade zu den beiden Dateien in den Textfeldern, und klicken Sie dann auf die Befehlsschaltfläche.

Informationsquellen

Weitere Informationen finden Sie auf der folgenden Microsoft-Websites:
System.IO-Namespace
(http://msdn2.Microsoft.com/en-us/library/System.IO (werden) aspx)
Dateizugriff mit der FileStream-Klasse
(http://msdn2.Microsoft.com/en-us/library/Aa903246 (werden) aspx)

Eigenschaften

Artikel-ID: 320348 - Geändert am: Sonntag, 30. September 2012 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Keywords: 
kbhowtomaster kbio kbmt KB320348 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 320348
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com