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

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 320348 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

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

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

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

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

  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. Για να δώσετε τις πλήρεις διαδρομές για τα δύο αρχεία με τα πλαίσια κειμένου και, στη συνέχεια, κάντε κλικ στο κουμπί εντολής.

Αναφορές

Για περισσότερες πληροφορίες, επισκεφθείτε τις ακόλουθες τοποθεσίες της Microsoft στο Web:
Ο χώρος ονομάτων System.IO
(.aspx http://msdn2.Microsoft.com/en-us/library/System.IO (vs.71))
Το αρχείο Access μέσω της κλάσης FileStream
(.aspx http://msdn2.Microsoft.com/en-us/library/Aa903246 (VS.71))

Ιδιότητες

Αναγν. άρθρου: 320348 - Τελευταία αναθεώρηση: Τρίτη, 21 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Λέξεις-κλειδιά: 
kbhowtomaster kbio kbmt KB320348 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:320348

Αποστολή σχολίων

 

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