Bir dosya karşılaştırma işlevi Visual C# ile oluşturma

Makale çevirileri Makale çevirileri
Makale numarası: 320348 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, bunların içeriğini aynı olup olmadığını görmek için iki dosyayı karşılaştırma gösterilmiştir. Bu karşılaştırma dosya adları, konumları, tarihleri, saatleri veya diğer öznitelikleri sırasında değil, iki dosya içeriğini bakar.

Bu işlevselliği çeşitli sürümleri Microsoft Windows ve Microsoft MS-DOS ve bazı geliştirme araçlarında bulunan MS-DOS'A tabanlı Fc.exe yardımcı benzer.

Bu makalede anlatılan örnek kod, bir uyuşmazlık bulduğu veya bu dosyanın sonuna ulaşıncaya kadar bir bayt bayt karşılaştırma yapar. Kodu ayrıca karşılaştırma verimliliğini artırmak için iki basit gerçekleştirmez:
  • Her ikisi de aynı dosyaya başvuru noktası dosyası, iki dosyayı da eşit olmalıdır.
  • Iki dosya boyutu aynı değilse, iki dosya aynı değildir.

Örnek oluşturmak için

  1. Yeni bir Visual C# Windows uygulaması) projesi oluşturun. Varsayılan olarak, Form1 oluşturulur.
  2. Iki metin kutusu denetimleri forma ekleyin.
  3. Bir komut düğmesi, forma ekleyin.
  4. Görünüm menüsünde kodu ' ı tıklatın.
  5. Form1 sınıfına KULLANARAK aşağıdaki deyimi ekleyin:
    using System.IO;
    					
  6. Aşağıdaki yöntem Form1 sınıfına ekleyin:
    // 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. Komut düğmesini tıklatarak olay aşağıdaki kodu yapıştırın:
    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. Kaydedin ve sonra örnek çalıştırın.
  9. Metin kutularının içindeki iki dosyaları tam yolları sağlayın ve sonra komut düğmesini tıklatın.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
System.ıo ad alanı
(http://msdn2.microsoft.com/en-us/library/system.io(vs.71).aspx)
Dosya erişim üzerinden FileStream sınıfı
(http://msdn2.microsoft.com/en-us/library/Aa903246(VS.71).aspx)

Özellikler

Makale numarası: 320348 - Last Review: 26 Kasım 2007 Pazartesi - Gözden geçirme: 1.6
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbio KB320348 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:320348

Geri Bildirim Ver

 

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