專利名稱:用于合并文件的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施方式總體上涉及信息技術(shù)領(lǐng)域,更具體地,涉及用于合并文件的方法和設(shè)備。
背景技術(shù):
為描述和說明目的,首先定義在此使用的若干術(shù)語在本申請語境中的含義。在此使用的術(shù)語“文件”總體上可以分為“虛擬文件”和“實際文件”兩類?!疤摂M文件”是指實際上并不存在于物理存儲介質(zhì)上的、而是僅存在于邏輯上或概念上的文件。相反,“實際文件”則是指實際存在于物理存儲介質(zhì)(例如,磁盤)上的文件,包括文本文件、二進制文件和/或其他任何形式的文件。此外,在此使用的術(shù)語“合并”表示將兩個或更多文件的內(nèi)容相結(jié)合以生成新的文件。合并可以按照多種方式執(zhí)行,諸如頭尾合并、插入、交錯合并等各種方式。另外,在此使用的術(shù)語“源文件”和“目標文件”分別表示合并操作所針對的文件以及作為合并結(jié)果而獲得的文件。可以理解,源文件和目標文件是相對的,一個合并操作中的目標文件可以充當另一目標操作中的源文件,反之亦然。如本領(lǐng)域已知的,在軟件以及Web站點的開發(fā)和維護中,為了便于設(shè)計、調(diào)試、實現(xiàn)和修改各種功能,經(jīng)常需要對多個文件進行合并。舉例而言,在Web站點的開發(fā)中,有時需要將原本在兩個頁面中呈現(xiàn)的內(nèi)容集中到一個頁面中。此時,假設(shè)兩個頁面的源文件分別為文件A和文件B,一種比較簡單、有效的方法是將文件A和文件B合并為新的文件(例如,文件C),其中文件C包含原文件A和文件B的內(nèi)容(可能還需要某些后續(xù)處理,不是本發(fā)明所要考慮的問題)。此時,文件A和B為源文件,而文件C為目標文件。在現(xiàn)有技術(shù)中,很多支持文件合并的方案和工具往往只支持二級合并。換言之,在發(fā)起文件合并的請求或者命令中,必須明確地指定所有源文件的完整路徑。仍然考慮上文提及的示例,根據(jù)現(xiàn)有技術(shù),文件合并請求中必須顯式地指明文件A和文件B的完整路徑。否則,合并將無法完成。然而在實踐中,經(jīng)常遇到需要進行多級文件合并的情況。例如,在上文的示例中,如果文件A需要進一步由文件Al和A2合并獲得。在這種情況下,根據(jù)上述現(xiàn)有技術(shù),文件合并的請求必須將文件Al、A2和B指定為源文件,并明確指定其路徑。這樣做帶來了諸多不便。首先,這增加了開發(fā)人員的負擔,削弱了邏輯抽象的作用。其次,可能會重復(fù)配置或者漏配置的問題。例如,仍然考慮上述情況,如果在后續(xù)開發(fā)和維護過程中,文件A的合并規(guī)則被改變(例如,變?yōu)橛晌募嗀l和A3合并獲得),則必須相應(yīng)地修改目標文件C的合并規(guī)則,即,將相關(guān)的源文件改為Al、A3和B。然而,在實踐中,在諸如文件數(shù)量眾多、各文件由不同的人員/團隊負責時等很多情況下,可能遺漏修改目標文件C的合并規(guī)則。這將導(dǎo)致無法獲得期望的目標文件C。為了解決這一問題,在現(xiàn)有技術(shù)中,已經(jīng)提出了若干支持多級文件合并的方案,即,允許源文件本身進一步由其他文件合并而來。然而,根據(jù)現(xiàn)有技術(shù)的此類方案,文件合并請求中所涉及的所有源文件都必須是實際文件,這可能給文件的管理和維護帶來不利影響。在很多情況下,對文件進行劃分和合并的主要目的是為了確保所謂的“粒度最小化”原則,即,盡可能確保每個實際文件中僅涉及基本的功能和/或信息。例如,在上文提及的示例中,文件Al和A2可能包含有粒度足夠小(甚至最小)的基本信息單位。而另一方面,在需要通過合并獲得新文件時,為了在較高層面(例如,功能層面、邏輯層面,等)確保清晰、完整,某些源文件可能僅僅在邏輯上被定義。仍然考慮上文示例,為了邏輯清晰和便于維護,目標文件C可被定義為由源文件A(由文件Al和A2合并獲得)和源文件B合并獲得,而源文件A實際上并不存在于任何物理存儲介質(zhì)上,即,源文件A是虛擬文件。然而,現(xiàn)有技術(shù)的解決方案無法有效地處理這一問題。換言之,如果合并中涉及到的任何一個源文件是存儲介質(zhì)上不存在的,則合并將出現(xiàn)錯誤。因此根據(jù)現(xiàn)有技術(shù) ,在上文示例中,為了創(chuàng)建目標文件C,必須首先顯式地創(chuàng)建源文件A,使其成為實際文件。這可能導(dǎo)致粒度最小化原則被破壞,從而不利于文件的粒度控制。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明的實施方式提供用于文件合并的新穎的方法和設(shè)備。在本發(fā)明的一個方面,提供一種用于合并文件的方法,包括響應(yīng)于合并多個源文件的請求,確定所述源文件是虛擬文件還是實際文件;針對虛擬文件,定位組成該虛擬文件的實際文件;以及將所述源文件中的實際文件與組成各虛擬文件的實際文件合并。根據(jù)本發(fā)明的某些可選實施方式,確定所述源文件是虛擬文件還是實際文件可以進一步包括在相關(guān)的存儲介質(zhì)上搜索所述源文件;以及響應(yīng)于在所述存儲介質(zhì)上沒有搜索到源文件,將該源文件確定為所述虛擬文件。根據(jù)本發(fā)明的另一些某些可選實施方式,確定所述源文件是虛擬文件還是實際文件可以進一步包括根據(jù)所述請求中與所述源文件相關(guān)聯(lián)的標簽來確定所述源文件是虛擬文件還是實際文件。備選地或附加地,確定所述源文件是虛擬文件還是實際文件可以進一步包括根據(jù)虛擬文件描述信息來確定所述多個源文件中的虛擬文件。根據(jù)本發(fā)明的某些可選實施方式,定位組成虛擬文件的實際文件可以進一步包括根據(jù)虛擬文件描述信息,定位組成所述虛擬文件的實際文件。根據(jù)本發(fā)明的某些可選實施方式,所述合并可以進一步包括在不創(chuàng)建額外實際文件的情況下執(zhí)行所述合并。備選地,所述合并可以進一步包括創(chuàng)建與所述虛擬文件對應(yīng)的實際文件;對所述多個源文件中的實際文件與所創(chuàng)建的實際文件進行合并;以及刪除所創(chuàng)建的實際文件。在本發(fā)明的又一方面,提供一種用于合并文件的設(shè)備,包括確定裝置,配置用于響應(yīng)于合并多個源文件的請求而確定所述源文件是虛擬文件還是實際文件;定位裝置,配置用于針對虛擬文件而定位組成該虛擬文件的實際文件;以及合并裝置,配置用于將所述源文件中的實際文件與組成各虛擬文件的實際文件合并。根據(jù)本發(fā)明的實施方式,不但允許多級文件合并,而且還允許參與合并的源文件是虛擬文件,即實際上并不存在的文件。當合并請求中的某些或全部源文件是此類虛擬文件時,可以利用多種機制來獲取組成每個虛擬文件的實際文件,并利用這些實際文件來正確地完成合并操作。根據(jù)優(yōu)選實施方式,無需用戶顯式地指明虛擬文件,而是可以在運行時期間自動確定。而且,根據(jù)優(yōu)選實施方式,在文件合并期間無需創(chuàng)建任何中間文件。由此,本發(fā)明的實施方式不僅可以有效地節(jié)省存儲資源,更重要的是,能夠克服現(xiàn)有技術(shù)中存在的由文件合并導(dǎo)致的漏配置、重復(fù)配置、破壞粒度最小化原則等問題。
通過參考附圖閱讀下文的詳細描述,本發(fā)明實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中圖I示出了根據(jù)本發(fā)明示例性實施方式的用于合并文件的方法100的流程圖;圖2A-圖2C示出了根據(jù)本發(fā)明示例性實施方式的文件合并請求的若干示例格式的不意圖;圖3示出了根據(jù)本發(fā)明示例性實施方式的用于合并文件的設(shè)備300的框圖;以及圖4示出了適合用來實踐本發(fā)明實施方式的計算機系統(tǒng)400的框圖。在附圖中,相同或?qū)?yīng)的標號表不相同或?qū)?yīng)的部分。
具體實施例方式下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。如上文所述,根據(jù)本發(fā)明的實施方式,不但允許多級文件合并,而且還允許參與合并的源文件是虛擬文件,即實際上并不存在的文件。根據(jù)優(yōu)選實施方式,無需用戶顯式地指明虛擬文件,而是可以在運行時期間自動確定。而且,根據(jù)本發(fā)明的優(yōu)選實施方式,在文件合并期間無需創(chuàng)建任何中間文件。由此,不但可以有效地節(jié)省存儲資源,還能夠克服現(xiàn)有技術(shù)中存在的由文件合并導(dǎo)致的漏配置、重復(fù)配置、破壞粒度最小化原則等問題。下面結(jié)合附圖以示例的方式詳細描述本發(fā)明的各種實施方式。首先參考圖1,其示出了根據(jù)本發(fā)明示例性實施方式的用于合并文件的方法100的流程圖。應(yīng)當理解,方法100中記載的各個步驟可以按照不同的順序執(zhí)行,和/或并行執(zhí)行。此外,方法100可以包括附加的步驟和/或省略執(zhí)行示出的步驟。本發(fā)明的范圍在此方面不受限制。方法100開始之后,在步驟S102,響應(yīng)于合并多個源文件的請求,確定源文件是否為虛擬文件。在步驟S102中,合并源文件的請求可以是通過多種方式獲得的。例如,此類請求可以由用戶通過命令行、圖形用戶界面和/或任何適當?shù)募夹g(shù)手段交互輸入。此外,此類請求也可以由系統(tǒng)中的其他相關(guān)設(shè)備、模塊和/或組件產(chǎn)生和提供。又如,此類請求也可以是批處理命令或其部分。本發(fā)明的范圍在此方面不受限制。根據(jù)本發(fā)明的實施方式,合并多個源文件的請求可以具有各種格式。一般而言,文件合并請求至少應(yīng)包含指示參與合并的源文件的標識信息;以及指示作為合并結(jié)果的目標文件的標識信息。特別地,根據(jù)本發(fā)明的實施方式,源文件允許是虛擬文件,即實際上并不存在于任何物理存儲介質(zhì)上的文件。為此,根據(jù)本發(fā)明實施方式,文件合并請求還應(yīng)包含相應(yīng)的附加字段,這將在下文詳述。根據(jù)本發(fā)明的實施方式,在步驟S102,可以通過多種方式來確定源文件是虛擬文件還是實際文件。例如,根據(jù)一種實施方式,可以根據(jù)文件合并請求中指示的源文件的標識信息(例如,文件名、存儲路徑等),在 相關(guān)的存儲介質(zhì)(例如,執(zhí)行文件合并的實體所具有或關(guān)聯(lián)的存儲介質(zhì),等等)上搜索源文件。如果能夠在存儲介質(zhì)上搜索到特定的源文件,則確定該源文件為實際文件。反之,如果在所述存儲介質(zhì)上沒有搜索到源文件,則將該源文件確定為虛擬文件。以此方式,根據(jù)本發(fā)明的這些實施方式,用戶無需顯式地聲明某個源文件為虛擬文件,而是可以自動地檢測和確定虛擬文件??梢岳斫?,上述方式是可行的,但可能具有較高的計算和/或時間代價。為此,根據(jù)本發(fā)明的另一些實施方式,可以通過文件合并請求本身來確定一個源文件是否為虛擬文件。例如,參見圖2A,其示出了根據(jù)本發(fā)明示例性實施方式的文件合并請求的一個示例格式。在圖2A所示的示例中,合并請求200A除了包括指示目標文件的字段210和指示源文件1···Ν的字段212-1···212-Ν之外,還包括虛擬文件描述信息字段214。如下所述,根據(jù)本發(fā)明的實施方式,字段214中包含的虛擬文件描述信息可以指示組成源文件中的每個以及全部虛擬文件的實際文件信息。由此,如果某個源文件的標識信息(例如,文件名)存在于此類虛擬文件描述信息中,則可以確定該源文件是虛擬文件。因而,在這樣的實施方式中,可以通過搜索和匹配虛擬文件描述信息字段214中包含的虛擬文件描述信息,來確定源文件是否為虛擬文件。可以理解,根據(jù)圖2Α所示的實施方式,用戶仍舊無需顯式地聲明某個源文件為虛擬文件。不僅如此,由于搜索虛擬文件描述信息的代價通常小于搜索物理存儲介質(zhì)(例如,磁盤)的代價,還可以獲得性能的提升。應(yīng)當理解,在圖2Α所示的合并請求中,多個字段的劃分僅僅是出于說明和描述目的。在實踐中,上述格式可以通過多種方式來實現(xiàn)。例如,參加下面的表1,示出了利用可擴展標記語言(XML)來實現(xiàn)圖2Α所示的合并請求200Α的一個具體示例。
權(quán)利要求
1.一種用于合并文件的方法,包括 響應(yīng)于合并多個源文件的請求,確定所述源文件是虛擬文件還是實際文件; 針對虛擬文件,定位組成該虛擬文件的實際文件;以及 將所述源文件中的實際文件與組成各虛擬文件的實際文件合并。
2.如權(quán)利要求I所述的方法,其中確定所述源文件是虛擬文件還是實際文件進一步包括 在相關(guān)的存儲介質(zhì)上搜索所述源文件;以及 響應(yīng)于在所述存儲介質(zhì)上沒有搜索到源文件,將該源文件確定為所述虛擬文件。
3.如權(quán)利要求I所述的方法,其中確定所述源文件是虛擬文件還是實際文件進一步包括 根據(jù)虛擬文件描述信息來確定所述多個源文件中的虛擬文件。
4.如權(quán)利要求I所述的方法,其中確定所述源文件是虛擬文件還是實際文件進一步包括 根據(jù)所述請求中與所述源文件相關(guān)聯(lián)的標簽來確定所述源文件是虛擬文件還是實際文件。
5.如權(quán)利要求I所述的方法,其中定位組成虛擬文件的實際文件進一步包括 根據(jù)虛擬文件描述信息來定位組成所述虛擬文件的實際文件。
6.如權(quán)利要求I所述的方法,其中所述合并包括 在不創(chuàng)建額外實際文件的情況下執(zhí)行所述合并。
7.如權(quán)利要求I所述的方法,其中所述合并包括 創(chuàng)建與所述虛擬文件對應(yīng)的實際文件; 對所述多個源文件中的實際文件與所創(chuàng)建的實際文件進行合并;以及 刪除所創(chuàng)建的實際文件。
8.一種用于合并文件的設(shè)備,包括 確定裝置,配置用于響應(yīng)于合并多個源文件的請求而確定所述源文件是虛擬文件還是實際文件; 定位裝置,配置用于針對虛擬文件而定位組成該虛擬文件的實際文件;以及 合并裝置,配置用于將所述源文件中的實際文件與組成各虛擬文件的實際文件合并。
9.如權(quán)利要求8所述的設(shè)備,其中所述確定裝置進一步包括 配置用于在相關(guān)的存儲介質(zhì)上搜索所述源文件的裝置;以及 配置用于響應(yīng)于在所述存儲介質(zhì)上沒有搜索到源文件而將該源文件確定為所述虛擬文件的裝置。
10.如權(quán)利要求8所述的設(shè)備,其中所述確定裝置進一步包括 配置用于根據(jù)虛擬文件描述信息來確定所述多個源文件中的虛擬文件的裝置。
11.如權(quán)利要求8所述的設(shè)備,其中所述確定裝置進一步包括 配置用于根據(jù)所述與所述源文件相關(guān)聯(lián)的標簽來確定所述源文件是虛擬文件還是實際文件的裝置。
12.如權(quán)利要求8所述的設(shè)備,其中所述定位裝置進一步包括 配置用于根據(jù)虛擬文件描述信息來定位組成所述虛擬文件的實際文件的裝置。
13.如權(quán)利要求8所述的設(shè)備,其中所述合并裝置進一步包括配置用于在不創(chuàng)建額外實際文件的情況下執(zhí)行所述合并的裝置。
14.如權(quán)利要求8所述的設(shè)備,其中所述合并裝置進一步包括配置用于創(chuàng)建與所述虛擬文件對應(yīng)的實際文件的裝置;配置用于對所述多個源文件中的實際文件與所創(chuàng)建的實際文件進行合并的裝置;以及配置用于刪除所創(chuàng)建的實際文件的裝置。
全文摘要
本發(fā)明的實施方式涉及用于合并文件的方法和設(shè)備。具體地,公開了一種用于合并文件的方法,包括響應(yīng)于合并多個源文件的請求,確定所述源文件是虛擬文件還是實際文件;針對虛擬文件,定位組成該虛擬文件的實際文件;以及將所述源文件中的實際文件與組成各虛擬文件的實際文件合并。本發(fā)明的實施方式還公開了相應(yīng)的設(shè)備。
文檔編號G06F17/30GK102622377SQ20111003514
公開日2012年8月1日 申請日期2011年1月28日 優(yōu)先權(quán)日2011年1月28日
發(fā)明者李靖威 申請人:北京千橡網(wǎng)景科技發(fā)展有限公司