惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
S
Securelist
P
Proofpoint News Feed
D
DataBreaches.Net
Cisco Talos Blog
Cisco Talos Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Project Zero
Project Zero
A
About on SuperTechFans
罗磊的独立博客
WordPress大学
WordPress大学
月光博客
月光博客
Latest news
Latest news
C
Cyber Attacks, Cyber Crime and Cyber Security
GbyAI
GbyAI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Privacy International News Feed
AI
AI
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Help Net Security
Help Net Security
T
Tor Project blog
V
Vulnerabilities – Threatpost
C
Cisco Blogs
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MyScale Blog
MyScale Blog
雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
Forbes - Security
Forbes - Security
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
T
Threat Research - Cisco Blogs
B
Blog RSS Feed
博客园 - 叶小钗
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Simon Willison's Weblog
Simon Willison's Weblog
C
CERT Recently Published Vulnerability Notes
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic

博客园 - davidullua

Google chrome的离线安装版 百度进军B2C行业 No size set for variable length data type: String Response.WriteFile()下载文件,打开对话框出现两次 - davidullua - 博客园 to create table if table do not exist -- to backup and restore table in oracle Gmail邀请 to call Session_End() event when user closed Browser When Session_End() and Session_Start() Fires about Ora-03114 disable asp.net connection pool(pooling) Oracle FAQ: 未在本地计算机上注册"OraOLEDB.Oracle"提供程序 (The 'OraOLEDB.Oracle' provider is not registered on the local machine) solution - davidullua ora-00054 , alter system kill session 'id,serial#' Change Path of C:\Documents and Settings - davidullua About FormsAuthentication.RedirectFromLoginPage(string username, bool createPersistentCookie) Send email by jmail or CDO according to configuration C#中调用控件的事件 [导入]C#向Sql Server中插入记录时单引号的处理 [导入]C#使用CDO发送邮件 [导入]使用jmail组件发送电子邮件(C#) [导入]C#中使用反射显示程序集的所有类型和属性 [导入]使用Oracle Developer Tools For Visual Studio .NET
File Comparer - To compare two files and check whether they have the same content
davidullua · 2005-10-19 · via 博客园 - davidullua

Since it is slow and has low performance to compare to files byte by byte, we could use MD5 algorithm to computer the Hash Code of the FileStream for specified files to check whether two files have the same content. .Net has MD5 algorithm inside, you can search MD5 in MSDN for detail.  You can download the full sample code and compiled program: https://files.cnblogs.com/davidullua/FileComparer.zip

Here's the sample code to compute hash code of a file:

        /// <summary>
        
/// to computer HashCode of a File, different files will generate different HashCode
        
/// </summary>
        
/// <param name="fileName"></param>
        
/// <returns></returns>

        public static string ComputeHashCode(string fileName)
        
{
            
if(!File.Exists(fileName))
            
{
                
throw new FileNotFoundException("File does not exist",fileName);
            }
            

            Stream fileStream 
= File.OpenRead(fileName); 
            
try 
            
{                
                MD5CryptoServiceProvider MD5Alg 
= new MD5CryptoServiceProvider(); 

                
byte[] hashValue = MD5Alg.ComputeHash(fileStream); 

                
return BitConverter.ToString(hashValue);                 
            }
 

            
catch 
            

                
throw
            }
 
            
finally 
            

                fileStream.Close();
            }
     
        }

Here's the code to compare two files' HashCode:

        /// <summary>
        
/// used to Compare Two files' HashCode, return true or false
        
/// </summary>
        
/// <param name="fileOne"></param>
        
/// <param name="fileTwo"></param>
        
/// <returns></returns>

        public static bool CompareFiles(string fileOne, string fileTwo) 
        
{
            
if(!File.Exists(fileOne) || !File.Exists(fileTwo))
            
{
                
throw new FileNotFoundException("File does not exist");
            }


            
try 
            
{  
                
string stringValue1 = ComputeHashCode(fileOne); 
                
string stringValue2 = ComputeHashCode(fileTwo);  

                
return (stringValue1.Equals(stringValue2)); 
            }
 

            
catch 
            

                
throw
            }
 


        }