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

推荐订阅源

博客园 - 叶小钗
爱范儿
爱范儿
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
博客园 - 聂微东
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
罗磊的独立博客
Jina AI
Jina AI

博客园 - 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 th...
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
            }
 


        }