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

推荐订阅源

博客园 - 三生石上(FineUI控件)
D
Docker
GbyAI
GbyAI
宝玉的分享
宝玉的分享
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Vercel News
Vercel News
博客园_首页
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
V
V2EX
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

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


        }