現在オフラインです。再接続するためにインターネットの接続を待っています

Visual C# でファイル比較関数を作成する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:320348
マイクロソフトの Visual Basic では。この資料のバージョンを NET を参照してください。 320346.

この資料には、次のマイクロソフトを指します。NET Framework クラス ライブラリの名前空間。
  • System.IO

このタスクで

概要
この資料では、内容が同じかどうかを表示するのには、2 つのファイルを比較する方法を示します。この比較では、ファイル名、場所、日付、時刻、またはその他の属性ではなく、2 つのファイルの内容を検索します。

この機能は、さまざまなバージョンの Microsoft Windows および Microsoft MS-DOS、およびいくつかの開発ツールに含まれている、- MS-DOS ベース Fc.exe ユーティリティ似ています。

この資料に記載されているサンプル コードは、不一致を検出するかは、ファイルの末尾に達するまでバイトごとの比較を実行します。コードは、比較の効率性を向上するのには、2 つの単純なチェックも実行します。
  • 両方が同じファイルに参照を指すをファイルの場合は、2 つのファイルでなければなりません。
  • 2 つのファイルのサイズは同じではない場合、2 つのファイルは、異なります。
back to the top

サンプルを作成するのには

  1. 新しい視覚 C# の Windows アプリケーション プロジェクトを作成します。既定では、Form1 が作成されます。
  2. 2 つの textbox コントロールをフォームに追加します。
  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. テキスト ボックスなどの 2 つのファイルに完全パスを指定し、[コマンド ボタン] をクリックします。
back to the top
関連情報
詳細については、次のマイクロソフト Web サイトを参照してください。
FileStream クラスからファイルへのアクセス
(.aspx の http://msdn2.microsoft.com/en-us/library/Aa903246 (VS.71))
back to the top

警告: この記事は自動翻訳されています

プロパティ

文書番号:320348 - 最終更新日: 07/27/2011 11:04:00 - リビジョン: 3.0

  • kbhowtomaster kbio kbmt KB320348 KbMtja
フィードバック