Compare two files are exactly the same
2007-06-10 11:19
337 查看
Usually our computers are attacked by viruses or other spyware website.
I don't know whether they modified files in our computer,especially execute files, or maybe HTML files.
Now, make a program to compare two files if they are exactly the same. I'd like use it to compare suspected file withe backup file.
Just wrote the code as below:
void CFileCompareDlg::OnBrowse()
{
// TODO: Add your control notification handler code here
CFileDialog filedlg(TRUE, NULL, NULL);
if(filedlg.DoModal() == IDOK)
{
m_fileName1 = filedlg.GetPathName();
}
UpdateData(FALSE);
}
void CFileCompareDlg::OnBrowse2()
{
// TODO: Add your control notification handler code here
CFileDialog filedlg(TRUE, NULL, NULL);
if(filedlg.DoModal() == IDOK)
{
m_fileName2 = filedlg.GetPathName();
}
UpdateData(FALSE);
}
void CFileCompareDlg::OnCompare()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_fileName1.Compare("")>0 && m_fileName2.Compare("")>0)
{
LPTSTR lpszFileName1 = new TCHAR[m_fileName1.GetLength()+1];
_tcscpy(lpszFileName1, m_fileName1);
CFile file1(lpszFileName1, CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone);
ASSERT(file1);
LPTSTR lpszFileName2 = new TCHAR[m_fileName2.GetLength()+1];
_tcscpy(lpszFileName2, m_fileName2);
CFile file2(lpszFileName2, CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone);
ASSERT(file2);
ULONGLONG ullFileLength1, ullFileLength2;
if((ullFileLength1=file1.GetLength()) != (ullFileLength2=file2.GetLength()))
{
MessageBox("The two files are not same length!");
return;
}
BYTE byte1, byte2;
ULONGLONG ullPos = 0;
while(ullFileLength1!=0)
{
file1.Read(&byte1, 1);
file2.Read(&byte2, 1);
ullPos ++;
if(byte1 != byte2)
{
char ch_Message[100];
sprintf(ch_Message, "The two files are not same at %d!", ullPos);
MessageBox(ch_Message);
return;
}
--ullFileLength1;
}
delete []lpszFileName1;
delete []lpszFileName2;
MessageBox("The two files are exactly the same!");
return;
}
else
{
MessageBox("Pls enter two files to be compared!");
return;
}
}
void CFileCompareDlg::OnExit()
{
// TODO: Add your control notification handler code here
CDialog::OnOK();
}
I don't know whether they modified files in our computer,especially execute files, or maybe HTML files.
Now, make a program to compare two files if they are exactly the same. I'd like use it to compare suspected file withe backup file.
Just wrote the code as below:
void CFileCompareDlg::OnBrowse()
{
// TODO: Add your control notification handler code here
CFileDialog filedlg(TRUE, NULL, NULL);
if(filedlg.DoModal() == IDOK)
{
m_fileName1 = filedlg.GetPathName();
}
UpdateData(FALSE);
}
void CFileCompareDlg::OnBrowse2()
{
// TODO: Add your control notification handler code here
CFileDialog filedlg(TRUE, NULL, NULL);
if(filedlg.DoModal() == IDOK)
{
m_fileName2 = filedlg.GetPathName();
}
UpdateData(FALSE);
}
void CFileCompareDlg::OnCompare()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_fileName1.Compare("")>0 && m_fileName2.Compare("")>0)
{
LPTSTR lpszFileName1 = new TCHAR[m_fileName1.GetLength()+1];
_tcscpy(lpszFileName1, m_fileName1);
CFile file1(lpszFileName1, CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone);
ASSERT(file1);
LPTSTR lpszFileName2 = new TCHAR[m_fileName2.GetLength()+1];
_tcscpy(lpszFileName2, m_fileName2);
CFile file2(lpszFileName2, CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone);
ASSERT(file2);
ULONGLONG ullFileLength1, ullFileLength2;
if((ullFileLength1=file1.GetLength()) != (ullFileLength2=file2.GetLength()))
{
MessageBox("The two files are not same length!");
return;
}
BYTE byte1, byte2;
ULONGLONG ullPos = 0;
while(ullFileLength1!=0)
{
file1.Read(&byte1, 1);
file2.Read(&byte2, 1);
ullPos ++;
if(byte1 != byte2)
{
char ch_Message[100];
sprintf(ch_Message, "The two files are not same at %d!", ullPos);
MessageBox(ch_Message);
return;
}
--ullFileLength1;
}
delete []lpszFileName1;
delete []lpszFileName2;
MessageBox("The two files are exactly the same!");
return;
}
else
{
MessageBox("Pls enter two files to be compared!");
return;
}
}
void CFileCompareDlg::OnExit()
{
// TODO: Add your control notification handler code here
CDialog::OnOK();
}
相关文章推荐
- given two directory trees how to find which files are the same?
- File Comparer - To compare two files and check whether they have the same content
- Check whether two input intergers are the same without using comparison operator
- Test whether two objects hold the same data values or both are null
- How Do I Compare Two Files and Show The Differences?
- Why the same files are copied to /Approot and /Siteroot in Windows Azure WebRole?
- Compare Data from the Same Table in two Different Environments
- [Tree]If you are given two traversal sequences, can you construct the binary tree?
- csharp:Compare two DataTables to rows in one but not the other
- A schema cannot contains two global components with the same name
- [整理]VC编译程序时出现the source files are both configured to produce the output file....
- two or more web modules defined in the configuration have the same context root
- 23 In Recovery Manager (RMAN), you are taking image copies of the data files of your production data
- Error:Application and test application id cannot be the same: both are 'cn.deu.bztc.happyidiom.activ
- These are the support and errata files for titles formerly published by Wrox Press Limited.
- U面经Prepare: Print Binary Tree With No Two Nodes Share The Same Column
- Which two are the uses of the ASM metadata backup and restore (AMBR) feature? (Choose two.)
- Copy files to a folder which need have Administrator approve and overwrite the existing same readonly files
- Find the first intersection of two lists (if the two list are merged at some point)
- 2 counts of IllegalAnnotationExceptions Class has two properties of the same name JAXB异常