Cara membuat fungsi membandingkan File dalam Visual C#

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 320348 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana untuk membandingkan dua file untuk melihat apakah mereka isi yang sama. Perbandingan ini melihat isi dari dua file, tidak pada nama file, lokasi, tanggal, waktu, atau atribut lainnya.

Fungsi ini sangat mirip dengan berbasis MS-DOS Fc.exe utilitas yang disertakan dengan berbagai versi Microsoft Windows dan Microsoft MS-DOS, dan dengan beberapa pengembangan alat.

Kode contoh yang dijelaskan di artikel ini melakukan perbandingan byte oleh byte sampai menemukan ketidakcocokan atau mencapai akhir file. Kode juga melakukan dua cek sederhana untuk meningkatkan efisiensi perbandingan:
  • Jika kedua file titik referensi ke file yang sama, dua file harus sama.
  • Jika ukuran dua file tidak sama, dua file yang tidak sama.

Untuk membuat sampel

  1. Membuat proyek Visual C# Windows aplikasi baru. Secara default, Form1 dibuat.
  2. Tambahkan kontrol textbox dua bentuk.
  3. Tambahkan tombol perintah ke bentuk.
  4. Pada Lihat menu, klik Kode.
  5. Tambahkan berikut MENGGUNAKAN pernyataan Form1 kelas:
    using System.IO;
    					
  6. Menambahkan metode berikut untuk Form1 kelas:
    // 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. Paste kode berikut di Klik acara tombol perintah:
    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. Simpan dan kemudian menjalankan sampel.
  9. Menyediakan jalur penuh untuk dua file di Druckerauswahl, dan kemudian klik tombol perintah.

REFERENSI

Untuk informasi lebih lanjut, kunjungi Web site Microsoft berikut:
System.io Namespace
(.aspx http://msdn2.Microsoft.com/en-us/library/System.io (vs.71))
Akses file melalui kelas FileStream
(.aspx http://msdn2.Microsoft.com/en-us/library/Aa903246 (VS.71))

Properti

ID Artikel: 320348 - Kajian Terakhir: 26 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Kata kunci: 
kbhowtomaster kbio kbmt KB320348 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:320348

Berikan Masukan

 

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