一种文件比较方法

文档序号:6538316阅读:158来源:国知局
专利名称:一种文件比较方法
技术领域
本发明涉及文件处理技术领域,具体涉及一种文件比较方法。
背景技术
文件比较工具,通过对两个文件内容进行比较来确定两个文件是否完全相同,在确定两个文件的内容不相同时,文件比较工具通常还可以输出两个文件的不同之处。
目前,文件比较工具如Windows平台下的文件比较程序fc.exe file1 file2实现文件比较的方法主要为将两个需要比较的文件file1(文件1)、file2(文件2)分别读入缓存,然后从file1、file2的文件头开始对两个文件进行逐字节的比较,直到文件尾。比较完成后,输出两个文件的比较结果,如文件相同、文件不相同、文件的不同之处等。
在需要进行比较的文件较大时,如文件的大小超过计算机缓存大小几倍以上,计算机系统会将所有的空闲缓存都分配给文件比较程序使用,使系统缓存几乎被完全耗尽,并且占用了大量的CPU资源,使计算机系统中运行的其他程序会由于缓存不足而被挂起,导致其他程序不能正常运行。
由于文件比较是逐字节比较的,所以,在比较的文件较大的情况下,文件比较的时间会很长,可能需要数分钟乃至数十分钟,计算机长时间的被文件比较程序占用,无法正常运行其他程序,影响了计算机的正常使用。

发明内容
本发明的目的在于,提供一种文件比较方法,通过设置文件比较时需要占用的系统资源,有效控制了文件比较时占用的计算机资源,实现了提高计算机系统性能的目的。
为达到上述目的,本发明提供的一种文件比较方法,包括a、设置文件比较需要占用的系统资源;b、根据所述文件比较需要占用的系统资源进行文件比较。
所述系统资源包括缓存空间。
所述步骤a包括在文件比较命令中设置文件比较需要占用的缓存空间参数。
所述步骤a包括将需要比较的文件中的其中一个文件在文件比较过程中需要占用的缓存空间设置于文件比较命令的缓存空间参数中。
所述步骤a还包括设置所述参数的缺省值。
所述步骤b包括判断文件比较命令的各参数是否设置正确;如果设置正确,从所述缓存空间参数中获取文件比较需要占用的缓存空间,并根据所述缓存空间进行文件比较;如果设置不正确,输出命令行帮助信息。
所述文件比较命令的各参数包括需要进行文件比较的各文件的地址信息参数、缓存空间参数。
所述根据所述缓存空间进行文件比较的步骤具体包括判断需要进行文件比较的文件大小是否超过所述缓存空间;如果未超过所述缓存空间,将需要比较的文件中的所有数据读入缓存,并进行比较;
如果超过所述缓存空间,根据所述缓存空间依次将需要比较的文件中的相应数据读入缓存,并分别进行比较。
所述方法还包括输出文件比较结果;且所述文件比较结果为文件相同或文件不同和/或文件不同之处。
所述文件包括基于ASCII的文件或基于二进制的文件。
通过上述技术方案的描述可知,本发明通过设置文件比较时占用的系统资源,如缓存空间,使文件在比较过程中占用的计算机资源能够被有效控制,避免了由于文件比较占用所有空闲的缓存空间的现象,使其他程序不会因文件比较而被挂起,使计算机的正常使用不会受到文件比较的影响;通过在文件比较命令参数中设置文件比较需要占用的缓存空间,使本发明设置文件比较需要占用的缓存空间的方法灵活、且易于实现;从而通过本发明提供的技术方案实现了提高计算机系统性能的目的。


图1是本发明的文件比较方法流程图1;图2是本发明的文件比较方法流程图2。
具体实施例方式
在计算机系统进行文件比较时,如果使计算机系统的资源能够被有计划的占用,使计算机系统能够在进行文件比较的同时,还能够为其他程序提供可利用的资源,就能够避免文件比较时,尤其是在进行较大文件的比较时,因文件比较程序过多的占用计算机资源而影响计算机正常使用的现象。
因此,本发明的核心是设置文件比较需要占用的系统资源,根据所述文件比较需要占用的系统资源进行文件比较。
下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。
本发明中的文件包括基于ASCII的文件或基于二进制的文件。
本发明中的系统资源包括计算机系统的缓存空间,即计算机系统的内存空间。
本发明首先需要设置文件比较时需要占用的缓存空间。设置文件比较时需要占用的缓存空间的方法可以为在文件比较命令中增加一个参数,该参数可以表明文件比较需要占用的缓存空间,如1KB。本发明还可以设置该参数的缺省值,如果在没有明确指定文件比较时需要占用的缓存空间的大小时,根据缺省值如2KB来确定文件比较时需要占用的缓存空间大小。
下面通过一个具体的文件比较命令来说明通过文件比较命令的参数设置文件比较需要占用的缓存空间的方法文件比较命令为Sanfc-s source_filename-d destinct_filename[-k K byte ofbuffer_length|-m M byte of buffer_length],其中source_filename为源文件文件名,源文件即被比较的文件,destinct_filename为目标文件名,目标文件即源文件的对比文件。参数-k与参数-m为可选参数,当设置了参数-k,-k后面的数值为文件比较时源文件占用缓存空间的大小,其单位为KB,当设置了参数-m,-m后面的数值为文件比较时源文件占用缓存空间的大小,其单位为MB。当不设置-k或-m及其后面的数值时,文件比较时源文件占用缓存空间为预先设定的缺省值。计算机系统在根据该文件比较命令进行文件比较时,源文件和目的文件共需要占用的缓存空间为参数-k或参数-m后面数值的2倍,或缺省值的2倍。
通过文件比较命令中的参数设置使本发明可以根据需要控制文件比较时占用的计算机缓存空间,使计算机系统能够在为文件比较提供缓存的同时,还能够为其他程序提供可利用的缓存空间。
在文件比较命令中设置了参数,并执行该命令时,需要判断文件比较命令的参数是否设置正确,如参数格式是否符合要求等,如果参数设置有误,计算机系统可以输出命令行帮助信息;如果参数设置正确,则可以根据参数设置的缓存空间进行文件比较过程。
在开始进行文件比较时,如果需要比较的文件的大小不超过本发明设置的缓存空间的大小,则可以直接将需要比较的文件中的所有数据都读入计算机缓存,并从文件头到文件尾进行逐字节的比较;如果需要比较的文件的大小超过本发明设置的缓存空间的大小,则应当根据缓存空间的大小将文件中的数据分批次的读入到缓存,并分别对每次读入的文件中的数据进行逐字节的比较。
在文件比较结束时,输出文件比较结果,如输出文件完全相同的比较结果或输出文件不相同的比较结果。在输出文件不相同的比较结果时,还可以输出文件的不同之处。
下面以2个文件进行比较为例,结合附图1、附图2对本发明的文件比较方法进行详细说明。
在图1中,步骤100,开始本发明的文件比较方法。
到步骤101,接收文件比较命令中的参数。
到步骤102,判断文件比较命令中的参数是否正确,即在设置了缓存空间参数时,判断文件比较命令中的文件1即源文件的地址参数、文件2即目标文件的地址参数、缓存空间参数是否都符合要求,在没有设置缓存空间参数时,判断文件比较命令中的文件1的地址参数、文件2的地址参数是否都符合要求,如果其中有一个不符合要求,到步骤103,输出命令行帮助信息,然后到步骤101。
在步骤102,如果文件比较命令中设置的参数都符合要求,到步骤104,根据文件比较命令中的文件1的地址参数打开文件1。
到步骤105,判断文件1是否打开出错,如果出错,到步骤106,关闭已打开的文件,并输出错误信息,结束文件比较过程。
在步骤105,如果文件1打开正确,到步骤107,根据文件比较命令中的文件2的地址参数打开文件2。
到步骤108,判断文件2是否打开出错,如果出错,到步骤106,关闭已打开的文件,并输出错误信息,结束文件比较过程。
在步骤108,如果文件2打开正确,到步骤109,判断文件1是否结束,即判断文件1是否已从文件头开始逐字节的比较到文件尾,如果文件1结束,到步骤110,设置文件1的结束标志,然后到步骤112。
在步骤109,如果文件1没有结束,到步骤111,根据文件比较命令中缓存空间参数的数值或缺省数值确定文件比较可以占用的缓存空间大小,根据该缓存空间大小将文件1中的相应数据读入缓存1。
到步骤112,判断文件2是否结束,即判断文件2是否已从文件头开始逐字节的比较到文件尾,如果文件2结束,到步骤113,设置文件2的结束标志,然后到步骤115。
在步骤112,如果文件2没有结束,到步骤114,根据文件比较命令中缓存空间参数的数值或缺省数值确定文件比较可以占用的缓存空间大小,根据该缓存空间大小将文件2中的相应数据读入缓存2。
到步骤115,根据文件中的结束标志判断文件1和文件2中是否有文件已经结束,如果有文件已经结束,到步骤116,根据结束标志判断文件1和文件2是否都结束,如果文件1和文件2都结束了,到步骤117,输出文件1和文件2相同的比较结果。
在步骤116,如果文件1和文件2中有一个没有结束,到步骤120,输出文件1和文件2不相同的比较结果。
在步骤115,如果文件1和文件2都没有结束,到步骤118,对缓存1和缓存2中的数据进行逐字节的比较。
到步骤119,判断缓存1和缓存2中的数据是否相同,如果相同,到步骤109,继续判断文件1是否结束。
在步骤119,如果缓存1和缓存2中的数据不相同,到步骤120,输出文件1和文件2不相同的比较结果。
到步骤121,关闭文件1和文件2。
到步骤122,完成文件1和文件2比较过程,本发明的文件比较方法结束。
在图2中,步骤200,开始本发明的文件比较方法。
到步骤201,接收文件比较命令中的参数。
到步骤202,判断文件比较命令中的参数是否正确,即在设置了缓存空间参数时,判断文件比较命令中的文件1的地址参数、文件2的地址参数、缓存空间参数是否都符合要求,在没有设置缓存空间参数时,判断文件比较命令中的文件1的地址参数、文件2的地址参数是否都符合要求,如果其中有一个不符合要求,到步骤203,输出命令行帮助信息,然后到步骤201。
在步骤202,如果文件比较命令中的设置参数都符合要求,到步骤204,根据文件比较命令中的文件1的地址参数打开文件1。
到步骤205,判断文件1是否打开出错,如果出错,到步骤206,关闭已打开的文件,并输出错误信息,结束文件比较过程。
在步骤205,如果文件1打开正确,到步骤207,根据文件比较命令中的文件2的地址参数打开文件2。
到步骤208,判断文件2是否打开出错,如果出错,到步骤206,关闭已打开的文件,并输出错误信息,结束文件比较过程。
在步骤208,如果文件2打开正确,到步骤209,根据文件比较命令中的参数设置或缺省值确定缓存1和缓存2的大小,并分配缓存空间。
到步骤210,判断文件1是否结束,即判断文件1是否已从文件头开始逐字节的比较到文件尾,如果文件1结束,到步骤211,设置文件1的结束标志,然后到步骤213。
在步骤210,如果文件1没有结束,到步骤212,将文件1中相应大小的数据读入缓存1,到步骤213。
在步骤213,判断文件2是否结束,即判断文件2是否已从文件头开始逐字节的比较到文件尾,如果文件2结束,到步骤214,设置文件2的结束标志,然后到步骤216。
在步骤213,如果文件2没有结束,到步骤215,将文件2中的相应大小的数据读入缓存2,到步骤216。
在步骤216,根据文件中的结束标志判断文件1和文件2中是否有文件已经结束,如果文件1和文件2都没有结束,到步骤217,对缓存1和缓存2中的数据进行逐字节的比较。
到步骤218,判断缓存1和缓存2中的数据是否相同,如果相同,到步骤210,继续判断文件1是否结束。
在步骤218,如果缓存1和缓存2中的数据不相同,到步骤219,输出文件1和文件2的不同之处,并设置文件1和文件2不相同的标志,到步骤210,继续判断文件1是否结束。
在步骤216,如果文件1和文件2中有文件结束了,到步骤220,根据结束标志判断文件1和文件2是否都结束,如果文件1和文件2都结束了,到步骤221,判断是否设置了文件1和文件2不相同的标志,如果没有设置文件1和文件2不相同的标志,到步骤223,输出文件1和文件2相同的比较结果,到步骤224。
在步骤221,如果设置了文件1和文件2不相同的标志,到步骤222,输出文件1和文件2不相同的比较结果,到步骤224。
在步骤220,如果文件1和文件2没有都结束,到步骤220,输出文件1和文件2不相同的比较结果,到步骤224。
在步骤224,关闭已打开的文件。
到步骤225,本发明的文件比较方法结束。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
权利要求
1.一种文件比较方法,其特征在于,包括a、设置文件比较需要占用的系统资源;b、根据所述文件比较需要占用的系统资源进行文件比较。
2.如权利要求1所述的一种文件比较方法,其特征在于,所述系统资源包括缓存空间。
3.如权利要求2所述的一种文件比较方法,其特征在于,所述步骤a包括在文件比较命令中设置文件比较需要占用的缓存空间参数。
4.如权利要求3所述的一种文件比较方法,其特征在于,所述步骤a包括将需要比较的文件中的其中一个文件在文件比较过程中需要占用的缓存空间设置于文件比较命令的缓存空间参数中。
5.如权利要求3或4所述的一种文件比较方法,其特征在于,所述步骤a还包括设置所述缓存空间参数的缺省值。
6.如权利要求3或4所述的一种文件比较方法,其特征在于,所述步骤b包括判断文件比较命令的各参数是否设置正确;如果设置正确,从所述缓存空间参数中获取文件比较需要占用的缓存空间,并根据所述缓存空间进行文件比较;如果设置不正确,输出命令行帮助信息。
7.如权利要求6所述的一种文件比较方法,其特征在于,所述文件比较命令的各参数包括需要进行文件比较的各文件的地址信息参数、缓存空间参数。
8.如权利要求6所述的一种文件比较方法,其特征在于,所述根据所述缓存空间进行文件比较的步骤具体包括判断需要进行文件比较的文件大小是否超过所述缓存空间;如果未超过所述缓存空间,将需要比较的文件中的所有数据读入缓存,并进行比较;如果超过所述缓存空间,根据所述缓存空间依次将需要比较的文件中的相应数据读入缓存,并分别进行比较。
9.如权利要求1、2、3或4所述的一种文件比较方法,其特征在于,所述方法还包括输出文件比较结果;且所述文件比较结果为文件相同或文件不同和/或文件不同之处。
10.如权利要求1、2、3或4所述的一种文件比较方法,其特征在于,所述文件包括基于ASCII的文件或基于二进制的文件。
全文摘要
本发明提供一种文件比较方法,其核心为设置文件比较需要占用的系统资源,根据所述文件比较需要占用的系统资源进行文件比较;本发明能够有效控制文件在比较过程中占用的计算机资源,避免了由于文件比较占用所有空闲的缓存空间的现象,使其他程序不会因文件比较而被挂起,使计算机的正常使用不会受到文件比较的影响;从而实现了提高计算机系统性能的目的。
文档编号G06F9/44GK1831759SQ20051005368
公开日2006年9月13日 申请日期2005年3月10日 优先权日2005年3月10日
发明者郑成明, 余俊武 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1