반응형
* C# 파일 비교 (File Compare) 예제...
- 사용한 컨트롤 : Label 5개 , Button 3개 , GroupBox 1개
전체 소스 코드
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CSharp_FileCompare
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//원본 파일 선택...
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
lblSource.Text = ofd.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
//대상 파일 선택...
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
lblDesc.Text = ofd.FileName;
}
}
private void button3_Click(object sender, EventArgs e)
{
//File Compare
int iFile1byte;
int iFile2byte;
System.IO.FileStream fs1;
System.IO.FileStream fs2;
//파일 위치 및 이름이 같으면...
if (lblSource.Text == lblDesc.Text)
{
lblCompare.Text = "같은 파일 입니다.";
return;
}
// Open the two files.
fs1 = new System.IO.FileStream(lblSource.Text, System.IO.FileMode.Open);
fs2 = new System.IO.FileStream(lblDesc.Text, System.IO.FileMode.Open);
//파일 길이 비교...
if (fs1.Length != fs2.Length)
{
// Close the file
fs1.Close();
fs2.Close();
// Return false to indicate files are different
lblCompare.Text = "다른 파일 입니다.";
return ;
}
do
{
// Read one byte from each file.
iFile1byte = fs1.ReadByte();
iFile2byte = fs2.ReadByte();
}
while ((iFile1byte == iFile2byte) && (iFile1byte != -1));
// Close the files.
fs1.Close();
fs2.Close();
if ((iFile1byte - iFile2byte) == 0)
{
lblCompare.Text = "같은 파일 입니다.";
}
}
}
}
*예제 결과
- 길이 및 읽은 바이트 수가 같으면...
- 파일 위치 및 이름이 같으면...
- 파일 길이 및 이름, 읽은 바이트 수가 다르면...
https://kdsoft-zeros.tistory.com/178
반응형
'C# Programming' 카테고리의 다른 글
[C#] [WMI] USB Detect 예제 (0) | 2020.04.03 |
---|---|
[C#] [WMI] CPU 클럭 속도 (CurrentClockSpeed) (0) | 2020.04.01 |
[C#] DateTimeFormat - 전역 설정 (0) | 2020.03.25 |
[C#] 설치된 닷넷프레임워크 버전 리스트 조회 (0) | 2020.03.23 |
[C#] [API] 제어판 기본 프린터(Default Printer) 변경 (0) | 2020.03.19 |