วิธีการสร้างฟังก์ชันเปรียบเทียบแฟ้มใน Visual c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 320348 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการเปรียบเทียบแฟ้มที่สองเพื่อดูว่า เนื้อหาแบบเดียวกัน การเปรียบเทียบนี้ที่ปรากฏในเนื้อหาของแฟ้มสอง ไม่ในชื่อไฟล์ สถานที่เก็บ วัน เวลา หรือแอตทริบิวต์อื่น ๆ

ฟังก์ชันนี้จะคล้ายกับยูทิลิตี Fc.exe ที่โปรแกรม-DOS ตามที่มีอยู่ ด้วยรุ่นต่าง ๆ ของ Microsoft Windows และ Microsoft MS-DOS และ มีบางเครื่องมือการพัฒนา

ตัวอย่างรหัสที่อธิบายไว้ในบทความนี้ทำการเปรียบเทียบไบต์โดยไบต์จนกว่าจะพบที่ไม่ตรงกัน หรือจะมาถึงจุดสิ้นสุดของแฟ้ม รหัสทำเช็คสองอย่างง่ายเพื่อเพิ่มประสิทธิภาพของการเปรียบเทียบ:
  • ถ้าทั้งสองแฟ้มจุดข้อมูลอ้างอิงไปยังแฟ้มเดียวกัน แฟ้มที่สองต้องเท่ากัน
  • ถ้าขนาดของแฟ้มที่สองไม่เหมือนกัน แฟ้มที่สองจะไม่เหมือนกัน

เมื่อต้องการสร้างตัวอย่างนี้

  1. สร้างโครงการ Visual c# Windows Application ใหม่ โดยค่าเริ่มต้นแล้ว Form1 จะถูกสร้างขึ้น
  2. เพิ่มตัวควบคุมกล่องข้อความที่สองให้กับฟอร์ม
  3. เพิ่มปุ่มคำสั่งไปยังแบบฟอร์ม
  4. ในการมุมมองเมนู คลิกรหัส.
  5. เพิ่มต่อไปนี้การใช้คำสั่งไปform1คลาส:
    using System.IO;
    					
  6. เพิ่มวิธีการต่อไปนี้ไปform1คลาส:
    // 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. เส้นทางเต็มรูปแบบแฟ้มที่สองใน textboxes การจัดหา และจากนั้น คลิกปุ่มคำสั่ง

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
System.IO Namespace
(.aspx http://msdn2.microsoft.com/en-us/library/system.io (vs.71))
แฟ้มการเข้าถึงผ่านคลา FileStream
(.aspx http://msdn2.microsoft.com/en-us/library/Aa903246 (VS.71))

คุณสมบัติ

หมายเลขบทความ (Article ID): 320348 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Keywords: 
kbhowtomaster kbio kbmt KB320348 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ 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