用于合并文件的方法和设备的制作方法

文档序号:6354299阅读:278来源:国知局
专利名称:用于合并文件的方法和设备的制作方法
技术领域
本发明的实施方式总体上涉及信息技术领域,更具体地,涉及用于合并文件的方法和设备。
背景技术
为描述和说明目的,首先定义在此使用的若干术语在本申请语境中的含义。在此使用的术语“文件”总体上可以分为“虚拟文件”和“实际文件”两类。“虚拟文件”是指实际上并不存在于物理存储介质上的、而是仅存在于逻辑上或概念上的文件。相反,“实际文件”则是指实际存在于物理存储介质(例如,磁盘)上的文件,包括文本文件、二进制文件和/或其他任何形式的文件。此外,在此使用的术语“合并”表示将两个或更多文件的内容相结合以生成新的文件。合并可以按照多种方式执行,诸如头尾合并、插入、交错合并等各种方式。另外,在此使用的术语“源文件”和“目标文件”分别表示合并操作所针对的文件以及作为合并结果而获得的文件。可以理解,源文件和目标文件是相对的,一个合并操作中的目标文件可以充当另一目标操作中的源文件,反之亦然。如本领域已知的,在软件以及Web站点的开发和维护中,为了便于设计、调试、实现和修改各种功能,经常需要对多个文件进行合并。举例而言,在Web站点的开发中,有时需要将原本在两个页面中呈现的内容集中到一个页面中。此时,假设两个页面的源文件分别为文件A和文件B,一种比较简单、有效的方法是将文件A和文件B合并为新的文件(例如,文件C),其中文件C包含原文件A和文件B的内容(可能还需要某些后续处理,不是本发明所要考虑的问题)。此时,文件A和B为源文件,而文件C为目标文件。在现有技术中,很多支持文件合并的方案和工具往往只支持二级合并。换言之,在发起文件合并的请求或者命令中,必须明确地指定所有源文件的完整路径。仍然考虑上文提及的示例,根据现有技术,文件合并请求中必须显式地指明文件A和文件B的完整路径。否则,合并将无法完成。然而在实践中,经常遇到需要进行多级文件合并的情况。例如,在上文的示例中,如果文件A需要进一步由文件Al和A2合并获得。在这种情况下,根据上述现有技术,文件合并的请求必须将文件Al、A2和B指定为源文件,并明确指定其路径。这样做带来了诸多不便。首先,这增加了开发人员的负担,削弱了逻辑抽象的作用。其次,可能会重复配置或者漏配置的问题。例如,仍然考虑上述情况,如果在后续开发和维护过程中,文件A的合并规则被改变(例如,变为由文件Al和A3合并获得),则必须相应地修改目标文件C的合并规则,即,将相关的源文件改为Al、A3和B。然而,在实践中,在诸如文件数量众多、各文件由不同的人员/团队负责时等很多情况下,可能遗漏修改目标文件C的合并规则。这将导致无法获得期望的目标文件C。为了解决这一问题,在现有技术中,已经提出了若干支持多级文件合并的方案,即,允许源文件本身进一步由其他文件合并而来。然而,根据现有技术的此类方案,文件合并请求中所涉及的所有源文件都必须是实际文件,这可能给文件的管理和维护带来不利影响。在很多情况下,对文件进行划分和合并的主要目的是为了确保所谓的“粒度最小化”原则,即,尽可能确保每个实际文件中仅涉及基本的功能和/或信息。例如,在上文提及的示例中,文件Al和A2可能包含有粒度足够小(甚至最小)的基本信息单位。而另一方面,在需要通过合并获得新文件时,为了在较高层面(例如,功能层面、逻辑层面,等)确保清晰、完整,某些源文件可能仅仅在逻辑上被定义。仍然考虑上文示例,为了逻辑清晰和便于维护,目标文件C可被定义为由源文件A(由文件Al和A2合并获得)和源文件B合并获得,而源文件A实际上并不存在于任何物理存储介质上,即,源文件A是虚拟文件。然而,现有技术的解决方案无法有效地处理这一问题。换言之,如果合并中涉及到的任何一个源文件是存储介质上不存在的,则合并将出现错误。因此根据现有技术 ,在上文示例中,为了创建目标文件C,必须首先显式地创建源文件A,使其成为实际文件。这可能导致粒度最小化原则被破坏,从而不利于文件的粒度控制。

发明内容
为了克服现有技术中的上述缺陷,本发明的实施方式提供用于文件合并的新颖的方法和设备。在本发明的一个方面,提供一种用于合并文件的方法,包括响应于合并多个源文件的请求,确定所述源文件是虚拟文件还是实际文件;针对虚拟文件,定位组成该虚拟文件的实际文件;以及将所述源文件中的实际文件与组成各虚拟文件的实际文件合并。根据本发明的某些可选实施方式,确定所述源文件是虚拟文件还是实际文件可以进一步包括在相关的存储介质上搜索所述源文件;以及响应于在所述存储介质上没有搜索到源文件,将该源文件确定为所述虚拟文件。根据本发明的另一些某些可选实施方式,确定所述源文件是虚拟文件还是实际文件可以进一步包括根据所述请求中与所述源文件相关联的标签来确定所述源文件是虚拟文件还是实际文件。备选地或附加地,确定所述源文件是虚拟文件还是实际文件可以进一步包括根据虚拟文件描述信息来确定所述多个源文件中的虚拟文件。根据本发明的某些可选实施方式,定位组成虚拟文件的实际文件可以进一步包括根据虚拟文件描述信息,定位组成所述虚拟文件的实际文件。根据本发明的某些可选实施方式,所述合并可以进一步包括在不创建额外实际文件的情况下执行所述合并。备选地,所述合并可以进一步包括创建与所述虚拟文件对应的实际文件;对所述多个源文件中的实际文件与所创建的实际文件进行合并;以及删除所创建的实际文件。在本发明的又一方面,提供一种用于合并文件的设备,包括确定装置,配置用于响应于合并多个源文件的请求而确定所述源文件是虚拟文件还是实际文件;定位装置,配置用于针对虚拟文件而定位组成该虚拟文件的实际文件;以及合并装置,配置用于将所述源文件中的实际文件与组成各虚拟文件的实际文件合并。根据本发明的实施方式,不但允许多级文件合并,而且还允许参与合并的源文件是虚拟文件,即实际上并不存在的文件。当合并请求中的某些或全部源文件是此类虚拟文件时,可以利用多种机制来获取组成每个虚拟文件的实际文件,并利用这些实际文件来正确地完成合并操作。根据优选实施方式,无需用户显式地指明虚拟文件,而是可以在运行时期间自动确定。而且,根据优选实施方式,在文件合并期间无需创建任何中间文件。由此,本发明的实施方式不仅可以有效地节省存储资源,更重要的是,能够克服现有技术中存在的由文件合并导致的漏配置、重复配置、破坏粒度最小化原则等问题。


通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中图I示出了根据本发明示例性实施方式的用于合并文件的方法100的流程图;图2A-图2C示出了根据本发明示例性实施方式的文件合并请求的若干示例格式的不意图;图3示出了根据本发明示例性实施方式的用于合并文件的设备300的框图;以及图4示出了适合用来实践本发明实施方式的计算机系统400的框图。在附图中,相同或对应的标号表不相同或对应的部分。
具体实施例方式下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。如上文所述,根据本发明的实施方式,不但允许多级文件合并,而且还允许参与合并的源文件是虚拟文件,即实际上并不存在的文件。根据优选实施方式,无需用户显式地指明虚拟文件,而是可以在运行时期间自动确定。而且,根据本发明的优选实施方式,在文件合并期间无需创建任何中间文件。由此,不但可以有效地节省存储资源,还能够克服现有技术中存在的由文件合并导致的漏配置、重复配置、破坏粒度最小化原则等问题。下面结合附图以示例的方式详细描述本发明的各种实施方式。首先参考图1,其示出了根据本发明示例性实施方式的用于合并文件的方法100的流程图。应当理解,方法100中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法100可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。方法100开始之后,在步骤S102,响应于合并多个源文件的请求,确定源文件是否为虚拟文件。在步骤S102中,合并源文件的请求可以是通过多种方式获得的。例如,此类请求可以由用户通过命令行、图形用户界面和/或任何适当的技术手段交互输入。此外,此类请求也可以由系统中的其他相关设备、模块和/或组件产生和提供。又如,此类请求也可以是批处理命令或其部分。本发明的范围在此方面不受限制。根据本发明的实施方式,合并多个源文件的请求可以具有各种格式。一般而言,文件合并请求至少应包含指示参与合并的源文件的标识信息;以及指示作为合并结果的目标文件的标识信息。特别地,根据本发明的实施方式,源文件允许是虚拟文件,即实际上并不存在于任何物理存储介质上的文件。为此,根据本发明实施方式,文件合并请求还应包含相应的附加字段,这将在下文详述。根据本发明的实施方式,在步骤S102,可以通过多种方式来确定源文件是虚拟文件还是实际文件。例如,根据一种实施方式,可以根据文件合并请求中指示的源文件的标识信息(例如,文件名、存储路径等),在 相关的存储介质(例如,执行文件合并的实体所具有或关联的存储介质,等等)上搜索源文件。如果能够在存储介质上搜索到特定的源文件,则确定该源文件为实际文件。反之,如果在所述存储介质上没有搜索到源文件,则将该源文件确定为虚拟文件。以此方式,根据本发明的这些实施方式,用户无需显式地声明某个源文件为虚拟文件,而是可以自动地检测和确定虚拟文件。可以理解,上述方式是可行的,但可能具有较高的计算和/或时间代价。为此,根据本发明的另一些实施方式,可以通过文件合并请求本身来确定一个源文件是否为虚拟文件。例如,参见图2A,其示出了根据本发明示例性实施方式的文件合并请求的一个示例格式。在图2A所示的示例中,合并请求200A除了包括指示目标文件的字段210和指示源文件1···Ν的字段212-1···212-Ν之外,还包括虚拟文件描述信息字段214。如下所述,根据本发明的实施方式,字段214中包含的虚拟文件描述信息可以指示组成源文件中的每个以及全部虚拟文件的实际文件信息。由此,如果某个源文件的标识信息(例如,文件名)存在于此类虚拟文件描述信息中,则可以确定该源文件是虚拟文件。因而,在这样的实施方式中,可以通过搜索和匹配虚拟文件描述信息字段214中包含的虚拟文件描述信息,来确定源文件是否为虚拟文件。可以理解,根据图2Α所示的实施方式,用户仍旧无需显式地声明某个源文件为虚拟文件。不仅如此,由于搜索虚拟文件描述信息的代价通常小于搜索物理存储介质(例如,磁盘)的代价,还可以获得性能的提升。应当理解,在图2Α所示的合并请求中,多个字段的划分仅仅是出于说明和描述目的。在实践中,上述格式可以通过多种方式来实现。例如,参加下面的表1,示出了利用可扩展标记语言(XML)来实现图2Α所示的合并请求200Α的一个具体示例。
权利要求
1.一种用于合并文件的方法,包括 响应于合并多个源文件的请求,确定所述源文件是虚拟文件还是实际文件; 针对虚拟文件,定位组成该虚拟文件的实际文件;以及 将所述源文件中的实际文件与组成各虚拟文件的实际文件合并。
2.如权利要求I所述的方法,其中确定所述源文件是虚拟文件还是实际文件进一步包括 在相关的存储介质上搜索所述源文件;以及 响应于在所述存储介质上没有搜索到源文件,将该源文件确定为所述虚拟文件。
3.如权利要求I所述的方法,其中确定所述源文件是虚拟文件还是实际文件进一步包括 根据虚拟文件描述信息来确定所述多个源文件中的虚拟文件。
4.如权利要求I所述的方法,其中确定所述源文件是虚拟文件还是实际文件进一步包括 根据所述请求中与所述源文件相关联的标签来确定所述源文件是虚拟文件还是实际文件。
5.如权利要求I所述的方法,其中定位组成虚拟文件的实际文件进一步包括 根据虚拟文件描述信息来定位组成所述虚拟文件的实际文件。
6.如权利要求I所述的方法,其中所述合并包括 在不创建额外实际文件的情况下执行所述合并。
7.如权利要求I所述的方法,其中所述合并包括 创建与所述虚拟文件对应的实际文件; 对所述多个源文件中的实际文件与所创建的实际文件进行合并;以及 删除所创建的实际文件。
8.一种用于合并文件的设备,包括 确定装置,配置用于响应于合并多个源文件的请求而确定所述源文件是虚拟文件还是实际文件; 定位装置,配置用于针对虚拟文件而定位组成该虚拟文件的实际文件;以及 合并装置,配置用于将所述源文件中的实际文件与组成各虚拟文件的实际文件合并。
9.如权利要求8所述的设备,其中所述确定装置进一步包括 配置用于在相关的存储介质上搜索所述源文件的装置;以及 配置用于响应于在所述存储介质上没有搜索到源文件而将该源文件确定为所述虚拟文件的装置。
10.如权利要求8所述的设备,其中所述确定装置进一步包括 配置用于根据虚拟文件描述信息来确定所述多个源文件中的虚拟文件的装置。
11.如权利要求8所述的设备,其中所述确定装置进一步包括 配置用于根据所述与所述源文件相关联的标签来确定所述源文件是虚拟文件还是实际文件的装置。
12.如权利要求8所述的设备,其中所述定位装置进一步包括 配置用于根据虚拟文件描述信息来定位组成所述虚拟文件的实际文件的装置。
13.如权利要求8所述的设备,其中所述合并装置进一步包括配置用于在不创建额外实际文件的情况下执行所述合并的装置。
14.如权利要求8所述的设备,其中所述合并装置进一步包括配置用于创建与所述虚拟文件对应的实际文件的装置;配置用于对所述多个源文件中的实际文件与所创建的实际文件进行合并的装置;以及配置用于删除所创建的实际文件的装置。
全文摘要
本发明的实施方式涉及用于合并文件的方法和设备。具体地,公开了一种用于合并文件的方法,包括响应于合并多个源文件的请求,确定所述源文件是虚拟文件还是实际文件;针对虚拟文件,定位组成该虚拟文件的实际文件;以及将所述源文件中的实际文件与组成各虚拟文件的实际文件合并。本发明的实施方式还公开了相应的设备。
文档编号G06F17/30GK102622377SQ20111003514
公开日2012年8月1日 申请日期2011年1月28日 优先权日2011年1月28日
发明者李靖威 申请人:北京千橡网景科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1