网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

C#实现比较两个文件的内容是否完全相同

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

其实编写这一个函数的主要目的是要示范如何执行一个字节接着一个字节的比较操作,直到发现不相符合者或是到达文件的尾端为止。我们的程序代码会执行下列两项简单的检查,以便提高比较的效率:

◆如果传递给函数的两个文件引用是指向相同的文件,则这两个文件一定相同,也就不需要进一步比较文件的内容。

◆如果两个文件的大小不相同,则这两个文件的内容一定不相同,也就不需要进一步比较文件的内容。

这里将程序代码列示如下:

  1. private void btnGoToCompare_Click(object sender,EventArgs e) 
  2.  
  3.  
  4. if(FileCompare(this.TextBox1.Text,this.TextBox2.Text)) 
  5.  
  6.  
  7. MessageBox.Show("两个文件是相同的。"); 
  8.  
  9.  
  10. else 
  11.  
  12.  
  13. MessageBox.Show("两个文件并不相同。"); 
  14.  
  15.  
  16.  
  17. //  此方法所接收的两个字符串代表您所要比较的两个文件。如果两个文件的内容完全相同, 
  18.  
  19. 将返回 True;任何其他 
  20.  
  21. //  的返回值都表示这两个文件的内容有所差异。 
  22.  
  23. private bool FileCompare(string file1,string file2) 
  24.  
  25.  
  26. //  判断相同的文件是否被参考两次。 
  27.  
  28. if(file1 == file2) 
  29.  
  30.  
  31. return true; 
  32.  
  33.  
  34. int file1byte = 0; 
  35.  
  36. int file2byte = 0; 
  37.  
  38. using(FileStream fs1 = new FileStream(file1,FileMode.Open), 
  39.  
  40. fs2 = new FileStream(file2,FileMode.Open)) 
  41.  
  42.  
  43. //  检查文件大小。如果两个文件的大小并不相同,则视为不相同。 
  44.  
  45. if(fs1 Length != fs2.Length) 
  46.  
  47.  
  48. // 关闭文件。 
  49.  
  50. fs1.Close(); 
  51.  
  52. fs2.Close(); 
  53.  
  54. return false; 
  55.  
  56.  
  57. //  逐一比较两个文件的每一个字节,直到发现不相符或已到达文件尾端为止。 
  58.  
  59. do 
  60.  
  61.  
  62. // 从每一个文件读取一个字节。 
  63.  
  64. file1byte = fs1.ReadByte(); 
  65.  
  66. file2byte = fs2.ReadByte(); 
  67.  
  68.  
  69. while ((file1byte == file2byte) && (file1byte != -1)); 
  70.  
  71. // 关闭文件。 
  72.  
  73. fs1.Close(); 
  74.  
  75. fs2.Close(); 
  76.  
  77.  
  78. //  返回比较的结果。在这个时候,只有当两个文件的内容完全相同时, 
  79.  
  80. "file1byte" 才会等于 "file2byte"。 
  81.  
  82. return ((file1byte - file2byte) == 0); 
  83.  
  • 下一篇资讯: .NET页面数据验证通用类
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师