CN100340979C - 一种文件比较方法 - Google Patents
一种文件比较方法 Download PDFInfo
- Publication number
- CN100340979C CN100340979C CNB2005100536823A CN200510053682A CN100340979C CN 100340979 C CN100340979 C CN 100340979C CN B2005100536823 A CNB2005100536823 A CN B2005100536823A CN 200510053682 A CN200510053682 A CN 200510053682A CN 100340979 C CN100340979 C CN 100340979C
- Authority
- CN
- China
- Prior art keywords
- file
- spatial cache
- comparison
- parameter
- relatively
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种文件比较方法,其核心为:设置需要进行文件比较的各文件的地址信息参数、及文件比较需要占用的系统资源,在确定所述地址信息参数、及文件比较需要占用的系统资源设置正确后,根据所述文件比较需要占用的系统资源进行文件比较,并输出文件比较结果;本发明能够有效控制文件在比较过程中占用的计算机资源,避免了由于文件比较占用所有空闲的缓存空间的现象,使其他程序不会因文件比较而被挂起,使计算机的正常使用不会受到文件比较的影响;从而实现了提高计算机系统性能的目的。
Description
技术领域
本发明涉及文件处理技术领域,具体涉及一种文件比较方法。
背景技术
文件比较工具,通过对两个文件内容进行比较来确定两个文件是否完全相同,在确定两个文件的内容不相同时,文件比较工具通常还可以输出两个文件的不同之处。
目前,文件比较工具如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,本发明的文件比较方法结束。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
Claims (10)
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的文件或基于二进制的文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100536823A CN100340979C (zh) | 2005-03-10 | 2005-03-10 | 一种文件比较方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100536823A CN100340979C (zh) | 2005-03-10 | 2005-03-10 | 一种文件比较方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1831759A CN1831759A (zh) | 2006-09-13 |
CN100340979C true CN100340979C (zh) | 2007-10-03 |
Family
ID=36994082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100536823A Expired - Fee Related CN100340979C (zh) | 2005-03-10 | 2005-03-10 | 一种文件比较方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100340979C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533346B (zh) * | 2008-03-13 | 2012-10-10 | 中兴通讯股份有限公司 | 源文件的比较装置及方法 |
CN104199637B (zh) * | 2014-07-16 | 2017-02-08 | 珠海金山网络游戏科技有限公司 | 一种对比打包文件的方法,装置及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172539A (ja) * | 1998-12-01 | 2000-06-23 | Yaskawa Electric Corp | ネットワーク上のファイル比較方法 |
JP2002163133A (ja) * | 2000-11-24 | 2002-06-07 | Toshiba Emi Ltd | ファイルデータ比較方法 |
KR20040047413A (ko) * | 2002-11-30 | 2004-06-05 | 삼성에스디에스 주식회사 | 그래픽방식에 의한 2d 캐드파일 비교 방법 |
CN1581170A (zh) * | 2003-08-15 | 2005-02-16 | 国际商业机器公司 | 用来比较两个计算机文件的方法及系统 |
-
2005
- 2005-03-10 CN CNB2005100536823A patent/CN100340979C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172539A (ja) * | 1998-12-01 | 2000-06-23 | Yaskawa Electric Corp | ネットワーク上のファイル比較方法 |
JP2002163133A (ja) * | 2000-11-24 | 2002-06-07 | Toshiba Emi Ltd | ファイルデータ比較方法 |
KR20040047413A (ko) * | 2002-11-30 | 2004-06-05 | 삼성에스디에스 주식회사 | 그래픽방식에 의한 2d 캐드파일 비교 방법 |
CN1581170A (zh) * | 2003-08-15 | 2005-02-16 | 国际商业机器公司 | 用来比较两个计算机文件的方法及系统 |
Non-Patent Citations (1)
Title |
---|
文本文件比较的算法分析和程序实现 范龙保,时亚光,常熟高专学报,第16卷第4期 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1831759A (zh) | 2006-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100339830C (zh) | 一种更新软件的方法 | |
CN1848851A (zh) | 创建轻量目录访问协议数据交换格式片段的方法与计算机 | |
CN1487477A (zh) | 图像形成装置及图像形成控制方法 | |
CN1848069A (zh) | 数据存储设备、重构控制设备、重构控制方法及存储介质 | |
CN1946226A (zh) | 电信设备升级的方法、设备及升级引擎单元 | |
CN1609829A (zh) | Linux操作系统下对USB设备即插即用的方法 | |
CN1924816A (zh) | 提高多核系统访问临界资源速度的方法和装置 | |
CN1617496A (zh) | 下一代网络终端自动升级配置的方法 | |
CN1841336A (zh) | 计算机测试方法 | |
CN100340979C (zh) | 一种文件比较方法 | |
CN1431595A (zh) | 自动化的主板测试系统及方法 | |
CN1658194A (zh) | 文件系统控制装置和文件系统控制方法 | |
CN101030121A (zh) | 存储控制设备及方法、计算机产品及信息处理设备 | |
CN1949175A (zh) | 一种对软件中的数据进行替换的方法 | |
CN1945478A (zh) | 仿真装置 | |
CN1845087A (zh) | 中断处理方法及中断处理装置 | |
CN1826582A (zh) | 数据存取程序指令编码 | |
CN1904835A (zh) | 一种计算机软件更新的方法 | |
CN1178130C (zh) | 控制方法和电子装置 | |
CN1889462A (zh) | 实现网管和网元配置操作的方法与系统 | |
CN1578301A (zh) | 编辑数据流的方法和设备 | |
CN1841329A (zh) | 对目标文件进行定位的方法和装置 | |
CN1238211C (zh) | 车载设备用嵌入式操作系统启动方法 | |
CN1269034C (zh) | 一种嵌入式系统中可执行文件的压缩及其加载方法 | |
CN101046745A (zh) | 控制界面上控件之间关系的方法、装置及控件显示系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071003 Termination date: 20180310 |