이 문서에서는 해당 내용을 동일한 있는지 두 파일을 비교 하는 방법을 보여 줍니다. 이 비교는 파일 이름, 위치, 날짜, 시간, 또는 다른 특성에는 두 파일의 내용을 살펴봅니다.
이 기능은 다양 한 버전의 Microsoft Windows 및 Microsoft MS-DOS와 일부 개발 도구에 포함 된 DOS 기반 Fc.exe 유틸리티와 비슷합니다.
이 문서에서 설명 하는 샘플 코드는 불일치를 발견할 또는 파일의 끝에 도달할 때까지 바이트 단위로 비교를 합니다. 코드는 또한 비교 효율을 두 가지 간단한 검사를 수행 합니다.
- 두 파일 모두 참조 지점 같은 파일에 파일 경우 같아야 합니다.
- 두 파일의 크기가 동일한 아닌 경우 두 파일이 동일한 않습니다.
샘플 만들기
- 새 Visual C# Windows 응용 프로그램 프로젝트를 만듭니다. Form1이 기본적으로 만들어집니다.
- 두 개의 textbox 컨트롤을 폼에 추가 합니다.
- 명령 단추를 폼에 추가 합니다.
- 보기 메뉴에서 코드 를 클릭 합니다.
- 다음 문을 사용 하 여 Form1 클래스에 추가 합니다.
using System.IO;
- 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); }
- 명령 단추의 Click 이벤트에 다음 코드를 붙여:
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."); } }
- 저장한 후 예제를 실행하십시오.
- 텍스트 상자, 두 파일에 대한 전체 경로를 입력한 다음 명령 단추를 클릭하십시오.
'프로그래밍 > C#' 카테고리의 다른 글
webbrower editor (0) | 2013.09.09 |
---|---|
C# Webbrowser ExecComand 리스트 (0) | 2013.09.05 |
C# SQL Stored Procedure 로 DataSet 가져오기 (0) | 2013.07.19 |
System.IO 및 C#를 사용 하 여 텍스트 파일을 읽는 방법 (0) | 2013.07.18 |
C# .NET을 사용하여 순환적으로 디렉터리 검색 (0) | 2013.07.18 |