專利名稱:即時生成文件版本的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種即時生成文件版本的方法。該方法是在用戶編輯文件的過程中,計算機系統(tǒng)可自動備份該文件在不同時間所修改的內(nèi)容,并以不同的版本文件儲存起來,該計算機系統(tǒng)可依用戶的需求,調(diào)用儲存在儲存裝置中任一的版本文件。
按一般已知的使用情況,用戶在定期修改文件后,想要保留以前每一版本的文件,而對同一文件的不同版本進行管理的具體作法,請參照
圖1所示,該作法是將用戶每次更改后的文件,分別以不同的文件名稱保存下來,并存放在計算機系統(tǒng)的文件夾內(nèi),以便日后查詢,當(dāng)用戶需要查詢某一版本的文件時,再將該文件夾打開,取用所需的版本文件,然因這些不同版本文件,其生成過程完全必需依賴用戶,以手動方式進行儲存,如此一來,不但會增加用戶在做此項工作時的工作量,且會占用較大的硬盤空間。
而現(xiàn)有的已知技術(shù)中,如Word中雖具有根據(jù)用戶自行設(shè)定的時間間隔,而自動存檔的功能,然,因該功能每次存儲時,皆使用同一個檔案名稱(normal.dot),因此,用戶無法對在最后存檔結(jié)果前,所修改的文件進行調(diào)用和查詢。
另外,如Norton Ghout雖可在每一設(shè)定時間內(nèi),將文件完全備份,以防止文件資料流失。但該系統(tǒng)僅會在用戶所設(shè)定的時間進行備份的動作,而在該設(shè)定時間未到的時間,及該設(shè)定時間與下一設(shè)定時間之間,并不會動作。因此,仍會有漏失文件的情況發(fā)生。例如,用戶設(shè)定每隔十分鐘作備份的動作,則在設(shè)定時前十分鐘(空窗期)內(nèi),如文件有任何修改,該計算機系統(tǒng)并不會進行任何處理。
鑒于上述傳統(tǒng)的應(yīng)用軟件在使用時,所存在的一些缺陷,本發(fā)明提供一種即時文件版本生成方法。
本發(fā)明的一個目的是在提供一種即時文件版本生成方法。該方法主要令用戶編輯某一文件的過程中,計算機系統(tǒng)可即時地將該文件在不同時間修改的內(nèi)容,分別儲存起來,而生成不同的版本文件。該計算機系統(tǒng)可根據(jù)用戶的要求,隨時調(diào)用不同的版本文件。
本發(fā)明的另一個目的是在提供一種即時文件版本生成方法,其計算機系統(tǒng)可根據(jù)用戶的設(shè)定,自動刪除所儲存較舊的版本文件,而只儲存新的版本文件,如此,即不會造成儲存裝置(如硬盤)的空間浪費。
本發(fā)明的再一個目的是在提供一種即時文件版本生成方法,該方法無須針對不同的軟件,設(shè)計獨立的模塊,而以相同方式完成版本文件的生成,且將其儲存在預(yù)定位置上,而具有通用性。
為了對本發(fā)明作更進一步的認(rèn)識與了解,以實施舉例配合附圖進一步詳細(xì)說明如下圖1為已知技術(shù)功能示意圖。
圖2為本發(fā)明的結(jié)構(gòu)示意圖。
圖3為本發(fā)明的主要流程圖。
圖4為本發(fā)明的攔截模塊流程圖。
圖5為本發(fā)明的比較模塊流程圖。
圖6為本發(fā)明的備份模塊流程圖。
圖7為本發(fā)明具體實施例的數(shù)據(jù)表。
本發(fā)明的即時版本生成的方法主要是透過鉤接函數(shù)(Hook)攔截用戶在編輯文件時所寫入文件的操作信息,并根據(jù)比較的結(jié)果,做出不同處理的方法。請參照圖2所示,該方法主要是在用戶編輯某一文件時,計算機系統(tǒng)會將該文件原先的內(nèi)容保存下來(101),同時透過攔截模塊中的鉤接函數(shù)(Hook),將該文件修改過的內(nèi)容攔截下來,并把攔截后的內(nèi)容,保存在自定義函數(shù)單元中,以備調(diào)用(102)。
再將儲存在自定義函數(shù)單元中的修改過的文件(以下簡稱新版本文件)與原先儲存在計算機系統(tǒng)中的文件(以下簡稱舊版本文件)發(fā)送至比較模塊進行比較,令該比較模塊可從文件大小、文件保存日期,以及文件所包含數(shù)據(jù)的循環(huán)冗余校驗值(CRC)等三個不同方向,分別去作比較(103),如果新舊版本文件比較的結(jié)果為不同,則將該新版本文件送至備份模塊(104)中,予以備份,而生成新文件;如果新舊版本比較的結(jié)果相同,則以該文件原來的名稱(File Name)儲存起來(105)。
再者,以下就本發(fā)明的方法對用戶信息接收及處理的過程,配合附圖(請參照圖3所示),詳細(xì)說明如下首先,當(dāng)用戶在編輯文件時,計算機系統(tǒng)即會攔截該用戶正在操作的文件(201),并等待接收該用戶寫入文件的操作信息(202),而該計算機系統(tǒng)在接收到該操作信息時,即會對該操作信息所寫入的文件進行識別(203),判斷該操作信息正在寫入的文件,是否為該用戶預(yù)先所指定的文件(204),如果判斷結(jié)果,該操作信息正在寫入的文件非用戶所指定文件,則調(diào)用該計算機系統(tǒng)繼續(xù)進行該文件的編輯(208)。
如果該文件為用戶所指定的文件,則將該文件與該文件的先前版本內(nèi)容進行比較(205),令該計算機系統(tǒng)可由兩者的比較結(jié)果,判斷兩者的間是否有改變(206),如果有改變,該計算機系統(tǒng)即會將該文件加以備份,并儲存在指定位置上,進而生成新版本文件(207);如果該文件與該文件先前的版本相比較沒有變化,則調(diào)用該計算機系統(tǒng)繼續(xù)該文件原有的編輯動作(208)。
至于,上述的攔截模塊、比較模塊及備份模塊進行時的相關(guān)過程,則配合附圖(請參照圖4、5、6所示),進一步詳細(xì)說明如下1.攔截模塊流程請參照圖4所示,首先,計算機系統(tǒng)會調(diào)用攔截模塊中的鉤接函數(shù)(例如IFSMgr-InstallHook()函數(shù))(301);同時保存與該文件先前版本對應(yīng)的函數(shù)地址(302);之后在該地址中嵌入自定義函數(shù)地址(303);同時判斷該自定義函數(shù)地址是否嵌入成功(304);如果不成功,則顯示操作失敗消息(305),并結(jié)束處理程序如果成功,則等待該自定義函數(shù)被調(diào)用(306),使計算機系統(tǒng)調(diào)用該自定義函數(shù),并調(diào)用該自定義函數(shù)作攔截處理時,該自定義函數(shù)即會對與其嵌接的函數(shù)地址中的文件,進行攔截處理(307)。
2.比較模塊流程請參照圖5所示,首先,該比較模塊會將由攔截模塊所攔截的文件(以下稱新版本文件)大小,與該文件先前的版本的大小(以下稱舊版本文件)作比較(401),并由比較結(jié)果判斷是否有變化(402),如果有變化,則備份該正在操作的文件(即新版本文件),如此,即可獲得該文件的最新版本(408);如果文件大小沒有變化,則繼續(xù)比較該新舊兩個版本的文件日期(403),判斷其是否有改變(404),如果有變化,則備份該正在操作的文件,并以該正在操作的文件當(dāng)前操作日期為該最新版本文件的名稱(408);如果新舊版本的文件日期仍然沒有改變,則再比較兩者的循環(huán)冗于校驗值(Cycle Redundancy Check,簡稱CRC)(505),判斷該值是否有變化(406),如果有變化,該計算機系統(tǒng)即備份該正在操作的文件(408),如果沒有變化,該計算機系統(tǒng)即不作任何處理,并結(jié)束處理程序(407)。
3.備份模塊流程請參照圖6所示,首先,計算機系統(tǒng)會判斷正在操作的文件內(nèi)容是否有改變(501),如果沒有變化,則結(jié)束相關(guān)的處理程序;如果有變化,則將處理當(dāng)前所備份的文件檔案總數(shù),與用戶所設(shè)定的最大數(shù)值做比較(502),該計算機系統(tǒng)可由比較結(jié)果,判斷所保存的文件版本的檔案總數(shù),是否已超過該用戶所設(shè)定的最大數(shù)值(503),如果超過設(shè)定的最大數(shù)值,則計算機系統(tǒng)會移除較舊的版本文件,只保留最新文件版本(504)后,再繼續(xù)讀取正在操作的文件(505),否則,計算機系統(tǒng)會直接讀取正在操作的文件(505)后,并將該正在操作文件的當(dāng)前操作時間(506)轉(zhuǎn)換成字符串形式(507),創(chuàng)建一個新文件夾(508),再將該文件復(fù)制到新文件夾中(509),如此,計算機系統(tǒng)即可根據(jù)用戶要求,進行定期作移除舊有版本檔案的動作,而達到釋放(free)儲存裝置(如硬盤)空間的目的。
為能更進一步了解本發(fā)明,以下舉一實施例說明如下本發(fā)明的即時自動生成文件版本的方法是一種文件備份計算機系統(tǒng),其主要在用戶編輯文件過程時,可自動將每次所備份的文件,以不同的版本儲存起來。具體方法是在備份文件的時候,以正在儲存的文件的日期及時間為該文件的目錄名,將不同時期需要備份的文件各別存放起來。
請參照圖7所示,例如有一個文件分別于1999年8月26日420pm、1999年8月26日320pm和1999年8月27日830am三個不同的時間進行了修改,如果用戶想要保留這三個版本文件,通常的作法是以手動輸入不同的目錄名稱,將該三個文件以不同的文件名稱儲存起來。
而本發(fā)明僅需通過鉤接函數(shù)(Hook)攔截用戶正在操作的文件,并在攔截的同時,識別用戶目前正本對文件進行寫入的操作,比較寫操作前后文件內(nèi)容是否有變化,結(jié)果發(fā)現(xiàn)1999年8月26日420pm用戶修改后的文件內(nèi)容有變化,即讀取當(dāng)前儲存文件的計算機計算機系統(tǒng)時間,將其轉(zhuǎn)換成字符串,根據(jù)這些字符串創(chuàng)建一個新文件夾,該新建文件夾的名稱設(shè)定為該字符串,并將當(dāng)前版本的文件自動復(fù)制到名為8/26/99/420pm的文件夾內(nèi),而分別于1999年8月26日320pm和1999年8月27日830am修改的文件版本,則以前面相同的方法分別自動備份在8/26/99/320pm和8/27/99/830am的文件夾中,以便供用戶日后查詢。
再者,計算機系統(tǒng)更可根據(jù)用戶的設(shè)定(于本實施例為10個),將文件夾中所儲存的版本總數(shù)(于本實施例為12個)與其作比較,而將文件夾中所儲存的前面10個版本加以刪除,而保留最新的2個版本(如虛線框所示)。
綜上所述,本發(fā)明的一種即時文件版本生成方法,不但可改良已知技術(shù)的各種缺點,且在使用上能增進功效,合于實用。
權(quán)利要求
1.一種即時文件版本生成方法,該方法利用計算機系統(tǒng)攔截用戶正在操作的文件,而在接收到該操作信息時,對該操作信息所寫入的文件進行辨別,判斷該文件是否為該用戶預(yù)先所指定文件;如果為用戶所指定的文件,則將該文件與該文件的上一版本進行比較,使計算機系統(tǒng)可由兩者的比較結(jié)果,判斷兩者的間是否有改變,如果有改變,則計算機系統(tǒng)即會將該文件加以備份,并儲存在指定位置上,進而生成新版本文件,從而即時地將用戶在不同時間修改的版本,分別儲存?zhèn)浞萜饋怼?br>
2.如權(quán)利要求1所述的即時文件版本生成方法,其中計算機系統(tǒng)在判斷該操作信息所寫入的文件不是用戶所指定文件時,則調(diào)用該計算機系統(tǒng)繼續(xù)該文件原有的編輯動作。
3.如權(quán)利要求1所述的即時文件版本生成方法,其中該計算機可通過攔截模塊在用戶操作文件的同時進行攔截的動作。
4.如權(quán)利要求3所述的即時文件版本生成方法,其中該攔截模塊進行攔截時,利用其中的鉤接函數(shù)攔截正在操作的文件,并在該鉤接函數(shù)攔截該文件時,保存與該文件先前版本對應(yīng)的函數(shù)地址,并于該地址嵌入自定義函數(shù);之后由計算機系統(tǒng)判斷該自定義函數(shù)地址是否已嵌入成功,如果成功,則等待該自定義函數(shù)被調(diào)用;使計算機系統(tǒng)調(diào)用自定義函數(shù),并在調(diào)用該自定義函數(shù)作攔截處理時,該自定義函數(shù)對與自定義函數(shù)嵌接的函數(shù)地址中的先前版本文件進行攔截處理。
5.如權(quán)利要求3所述的即時文件版本生成方法,其中該攔截模塊在該自定義函數(shù)地址未能成功嵌入該文件先前版本對應(yīng)的函數(shù)地址時,則顯示操作失敗的信息,并結(jié)束處理程序。
6.如權(quán)利要求1所述的即時文件版本生成方法,其中該計算機系統(tǒng)在攔截到用戶正在操作的文件內(nèi)容時,可通過比較模塊,將該文件修改的內(nèi)容與該文件先前版本的內(nèi)容進行比較的處理。
7.如權(quán)利要求6所述的即時文件版本生成方法,其中該比較模塊將由攔截模塊所攔截的文件(以下稱新版本文件),與先前的版本文件(以下稱舊版本文件)作比較后,再由比較結(jié)果判斷是否有變化,如果有變化,則備份該正在操作的文件(即新版本文件),這樣即可獲得該文件的最新版本。
8.如權(quán)利要求6所述的即時文件版本生成方法,其中該比較模塊可由文件內(nèi)容大小是否有變化來作為判斷的依據(jù)。
9.如權(quán)利要求6所述的即時文件版本生成方法,其中該比較模塊可由文件日期是否有改變來作為判斷的依據(jù)。
10.如權(quán)利要求6所述的即時文件版本生成方法,其中該比較模塊可由循環(huán)冗余校驗值(Cycle Redundancy Check,簡稱CRC)是否有變化來作為判斷的依據(jù)。
11.如權(quán)利要求6所述的即時文件版本生成方法,其中該比較模塊在作比較時,如果正在操作文件沒有任何變化,則計算機系統(tǒng)即不做任何處理,并結(jié)束操作。
12.如權(quán)利要求1所述的即時文件版本生成方法,其中該計算機系統(tǒng)在對該正在操作的文件與該文件的上一版本比較時,其比較結(jié)果為不同時,可通過備份模塊備份該文件的內(nèi)容。
13.如權(quán)利要求12所述的即時文件版本生成方法,其中該備份模塊在進行時,判斷該正在操作的文件內(nèi)容是否有改變,如果有變化,則將當(dāng)前的文件檔案總數(shù)與用戶所設(shè)定的最大數(shù)值作比較;該計算機系統(tǒng)可由比較結(jié)果,判斷所保存的版本文件的檔案總數(shù)是否已超過該用戶所設(shè)定的最大數(shù)值;如果超過設(shè)定的最大數(shù)值,則計算機系統(tǒng)會移除較舊的版本文件,只保留最新的版本文件;之后繼續(xù)讀取正在操作的文件,并將該正在操作的文件操作當(dāng)前計算機系統(tǒng)時間轉(zhuǎn)換成字符串形式,創(chuàng)建一個新文件夾,再將該文件復(fù)制到新文件夾中;如此,計算機系統(tǒng)即可根據(jù)用戶要求,定期進行移除舊有版本檔案的動作,進而達到釋放(Free)儲存裝置空間的目的。
14.如權(quán)利要求12所述的即時文件版本生成方法,其中該備份模塊在進行時,該正在操作的文件內(nèi)容如果沒有變化,則結(jié)束相關(guān)的處理程序。
15.如權(quán)利要求12所述的即時文件版本生成方法,其中該備份模塊在進行處理時,所備份的文件檔案總數(shù)未超過用戶所設(shè)定的最大數(shù)值時,計算機系統(tǒng)會直接讀取正在操作的文件后,并將該正在操作文件的當(dāng)前操作計算機系統(tǒng)時間轉(zhuǎn)換成字符串形式,創(chuàng)建一個新文件夾,再將該文件復(fù)制到新文件夾中。
全文摘要
本發(fā)明涉及即時生成文件版本的方法。該方法利用計算機系統(tǒng)攔截用戶正在操作的文件,將該文件與該文件的上一版本進行比較,判斷兩者的間是否有改變,如果有改變,則計算機系統(tǒng)即會將該文件加以備份,并儲存在指定位置上,進而生成新版本文件,如此,即能即時地將用戶在不同時間修改的版本,分別儲存?zhèn)浞萜饋?而供用戶隨時調(diào)用,且該計算機系統(tǒng)更可根據(jù)用戶預(yù)先的設(shè)定及要求,自動刪除儲存在儲存裝置中較舊的版本文件。
文檔編號G06F17/21GK1326155SQ00108978
公開日2001年12月12日 申請日期2000年5月25日 優(yōu)先權(quán)日2000年5月25日
發(fā)明者李鵬, 陳玄同, 林光信 申請人:英業(yè)達股份有限公司