科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C# 2005如何实现比较两个文件的内容是否完全相同

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在此我们要编写一个函数来比较两个文件的内容是否完全相同。请注意,我们所要比较的对象是文件的内容,而并非是两个文件的文件名称、位置、建立日期时间或其他属性。本函数的功能性非常类似于MSDOS的Fc.exe工具程序。

作者:章立民 来源:51CTO.com 2007年8月26日

关键字: C#

  • 评论
  • 分享微博
  • 分享邮件

Visual C# 2005文件 IO与数据存取秘诀》节选

条款33
Visual C# 2005如何实现比较两个文件的内容是否完全相同
条款55
Visual C# 2005如何让ComboBox控件显示出多个数据源属性
条款56
C#中为什么我的ComboBox控件在数据绑定时加载速度很慢
条款63
Visual C# 2005如何连接至Access数据库
条款73
Visual C# 2005中如何为数据表建立自动编号字段
条款100
Visual C# 2005中如何使用数据命令执行Transact-SQL语句
条款134
C#中将DataSet的内容写成XML时如何格式化字段数据
条款152
C#中当用户尝试删除数据行时如何显示确认对话框
条款161
Visual C# 2005中如何以程控方式启动默认的浏览器
条款163
Visual C# 2005中如何产生与比较哈希值

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

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

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

图 1-34

图1-34所示的是程序范例CH1_DemoForm044cs的执行画面,它示范如何利用我们所编写的FileCompare函数来比较两个文件的内容是否完全相同。这里将程序代码列示如下:

private void btnGoToCompare_Click(object sender,EventArgs e)

{

if(FileCompare(this.TextBox1.Text,this.TextBox2.Text))

{

MessageBox.Show("两个文件是相同的。");

}

else

{

MessageBox.Show("两个文件并不相同。");

}

}

//  此方法所接收的两个字符串代表您所要比较的两个文件。如果两个文件的内容完全相同,

将返回 True;任何其他

//  的返回值都表示这两个文件的内容有所差异。

private bool FileCompare(string file1,string file2)

{

//  判断相同的文件是否被参考两次。

if(file1 == file2)

{

return true;

}

int file1byte = 0;

int file2byte = 0;

using(FileStream fs1 = new FileStream(file1,FileMode.Open),

fs2 = new FileStream(file2,FileMode.Open))

{

//  检查文件大小。如果两个文件的大小并不相同,则视为不相同。

if(fs1Length != fs2.Length)

{

// 关闭文件。

fs1.Close();

fs2.Close();

return false;

}

//  逐一比较两个文件的每一个字节,直到发现不相符或已到达文件尾端为止。

do

{

// 从每一个文件读取一个字节。

file1byte = fs1.ReadByte();

file2byte = fs2.ReadByte();

}

while ((file1byte == file2byte) && (file1byte != -1));

// 关闭文件。

fs1.Close();

fs2.Close();

}

//  返回比较的结果。在这个时候,只有当两个文件的内容完全相同时,

"file1byte" 才会等于 "file2byte"。

return ((file1byte - file2byte) == 0);

}

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章