Τρόπος δημιουργίας μιας συνάρτησης σύγκριση αρχείων στο Visual C#

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:320348
Για την έκδοση Microsoft Visual Basic .NET αυτού του άρθρου, ανατρέξτε στην ενότητα320346.

Αυτό το άρθρο αναφέρεται στο ακόλουθο χώρο ονομάτων Microsoft .NET Framework Class Library:
  • System.IO

Σε αυτήν την εργασία

Περίληψη
Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο συγκρίνει δύο αρχεία για να δείτε εάν τα περιεχόμενά τους είναι τα ίδια. Σύγκριση αυτή εξετάζει τα περιεχόμενα των δύο αρχείων, όχι με τα ονόματα των αρχείων, θέσεις, ημερομηνίες, ώρες ή άλλα χαρακτηριστικά.

Αυτή η λειτουργικότητα είναι παρόμοια με το πρόγραμμα Fc.exe Μ-s-DOS που περιλαμβάνεται με διάφορες εκδόσεις των Microsoft Windows και του Microsoft MS-DOS, και ορισμένα εργαλεία ανάπτυξης.

Το δείγμα κώδικα που περιγράφεται σε αυτό το άρθρο πραγματοποιεί μια σύγκριση ανά byte μέχρι να βρει μια ασυμφωνία ή φτάσει στο τέλος του αρχείου. Ο κώδικας εκτελεί επίσης δύο απλές ελέγχους για να αυξήσετε την αποτελεσματικότητα της σύγκρισης:
  • Εάν και οι δύο αναφορές σημείο στο ίδιο αρχείο, τα δύο αρχεία πρέπει να είναι ίσες.
  • Εάν το μέγεθος των δύο αρχείων δεν είναι το ίδιο, τα δύο αρχεία δεν είναι το ίδιο.
back to the top

Για τη δημιουργία του δείγματος

  1. Για να δημιουργήσετε ένα νέο έργο Visual C# εφαρμογής Windows. Από προεπιλογή, δημιουργείται η φόρμα Form1.
  2. Προσθέστε δύο στοιχεία ελέγχου πλαισίου κειμένου στη φόρμα.
  3. Προσθέστε ένα κουμπί εντολής στη φόρμα.
  4. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  5. Προσθέστε τα εξήςusingπρόταση για τοΦόρμα1CLASS:
    using System.IO;					
  6. Προσθέστε την ακόλουθη μέθοδο για τοΦόρμα1CLASS:
    // 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. Επικολλήστε τον ακόλουθο κώδικα στο στοΚάντε κλικσυμβάν του κουμπιού εντολής:
    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. Αποθηκεύστε και κατόπιν εκτελέστε το δείγμα.
  9. Για να δώσετε τις πλήρεις διαδρομές για τα δύο αρχεία με τα πλαίσια κειμένου και, στη συνέχεια, κάντε κλικ στο κουμπί εντολής.
back to the top
Αναφορές
Για περισσότερες πληροφορίες, επισκεφθείτε τις ακόλουθες τοποθεσίες της Microsoft στο Web:
Το αρχείο Access μέσω της κλάσης FileStream
(.aspx http://msdn2.Microsoft.com/en-us/library/Aa903246 (VS.71))
back to the top

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Eigenschaften

Artikelnummer: 320348 – Letzte Überarbeitung: 12/21/2010 07:33:00 – Revision: 2.0

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

  • kbhowtomaster kbio kbmt KB320348 KbMtel
Feedback