Jak vytvořit soubor porovnat funkci v jazyce Visual C#

Microsoft Visual Basic .NET verzi tohoto článku naleznete v 320346 .


Tento článek odkazuje na následující obor názvů knihovny tříd rozhraní.NET Framework společnosti Microsoft:

  • System.IO

V TOMTO ÚKOLU

Souhrn

Tento článek ukazuje, jak porovnat dva soubory zobrazíte, pokud jejich obsah je stejný. Toto srovnání Porovná obsah dvou souborů, nikoli na názvy souborů, umístění, data, časy nebo jiné atributy.

Tato funkce je podobná Fc.exe nástroje založené na systému MS-DOS, který je součástí různých verzí systému Microsoft Windows a Microsoft MS-DOS a některé nástroje pro vývoj.

Ukázku kódu, která je popsána v tomto článku provádí porovnání bajt po bajtu, dokud najde nějakou nesrovnalost nebo je dosaženo konce souboru. Kód také provádí dvě jednoduché kontroly, zvýšení účinnosti porovnání:

  • Pokud oba soubor bod odkazy do stejného souboru, musí být stejné dva soubory.
  • Pokud velikost dvou souborů není stejná, dva soubory nejsou stejné.

Chcete-li vytvořit vzorek

  1. Vytvořte nový projekt Visual C# Windows Application. Ve výchozím nastavení je vytvořen formulář Form1.
  2. Přidáte dva ovládací prvky textbox do formuláře.
  3. Přidání příkazového tlačítka do formuláře.
  4. V nabídce Zobrazit klepněte na kód.
  5. Do třídy Form1 přidejte následující příkaz USING :
    using System.IO;
  6. Přidejte následující metodu třídy 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. Vložte následující kód v události Click příkazového tlačítka:
    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. Uložte a spusťte vzorku.
  9. Zadání úplné cesty k dva soubory v textových polí a potom klepněte na příkazové tlačítko.

Odkazy

Další informace naleznete na následujících webech společnosti Microsoft:

Přístup k souborům prostřednictvím třídy FileStream
(http://msdn2.microsoft.com/en-us/library/Aa903246(VS.71).aspx)
Vlastnosti

ID článku: 320348 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor