C# 有没什么方法比较两文件内容不同?

解决方案 »

  1.   

    两种方法,
    一,逐一比较两个文件的没一个字节组,直到文件结束或有不相同的地方为止
       FileStream.ReadByte();
    二,用哈希值
      

  2.   

                 //使用哈希值比较两个文件是否完全相等
                System.Security.Cryptography.HashAlgorithm hash = System.Security.Cryptography.HashAlgorithm.Create();
                FileStream stream1 = new FileStream("a.txt", FileMode.Open);
                FileStream stream2 = new FileStream("b.txt", FileMode.Open);
                byte[] hashbyte1 = hash.ComputeHash(stream1);
                byte[] hashbyte2 = hash.ComputeHash(stream2);
                stream1.Close();
                stream2.Close();            if (BitConverter.ToString(hashbyte1) == BitConverter.ToString(hashbyte2))
                    MessageBox.Show("ok");
                else
                    MessageBox.Show("error");
     
      

  3.   

     StreamReader hc = new StreamReader(@"c:\1.txt"); 
                string ss = hc.ReadToEnd(); 
                StreamReader hcg = new StreamReader(@"d:\2.txt"); 
                string sss = hcg.ReadToEnd(); 
                if (ss == sss) 
                { 
                    MessageBox.Show("同"); 
                } 
                else 
                { 
                    MessageBox.Show("不同"); 
                } 
      

  4.   


    一应该不推荐, 如果是上G文件就完了,
    二还行,我试过,1G的文件算Hash也就是几秒时间.
    不过比较要求不是很高,通过System.IO.File的最后修改日期跟文件Size应该就差不多了吧.
    这就不涉及到效率问题了.