專利名稱:用于組織計算機系統內的文件的方法和系統的制作方法
技術領域:
本發明一般地涉及計算機存儲,并且更具體地涉及組織計算機目錄結構中的文件的新方法。
背景技術:
多年以來,計算機存儲器價格下降而密度提高了。幾十年之前,計算機存儲器被以1000字節或“千字節(KB)”的組計量,具有64千字節(64K)的存儲器被認為是大容量的存儲器。隨著技術的進步,存儲器首先開始被以兆字節(MB)定義,每一兆字節表示1000千字節(1,000KB),吉字節,每一吉字節表示1000兆字節(1,000MB),并且甚至是太字節,每一太字節表示1000吉字節(1,000GB)。很快,存儲器將擴展到帕字節域,每一帕字節表示1000太字節(1,000TB),一百萬吉字節(1,000,000GB),十億兆字節(1,000,000,000MB)或一萬億千字節(1,000,000,000,000KB)。
隨著存儲器的擴展,數據也已經被擴展以便填充新的存儲器空間。數據通常被在特定的存儲器空間內組織到文件路徑或“存儲樹”內,文件路徑或“存儲樹”由組分的串構成,諸如目錄,多級子目錄和文件名。每次存儲器容量的增加都增加了指向特定文件路徑的組分的數量,或存儲樹的潛在“深度”。這給文件檢索和避免重復文件帶來了問題。例如,如果用戶沒有以正確的順序記住所有組分,具有5個路徑組分的文件,即“/directory_1/sub_dir_1/sub_dir_2/sub_dir_3/file_name.doc”可能難以被發現。此外,如果文件被存儲在稍微不同的路徑或具有被不經意地重新布置的組分的路徑,即,“/directory_1/sub_dir_2/sub_dir_1/sub_dir_3/file_name.doc”下,可能會創建引起數據存儲異常(諸如,但不限于刪除和更新異常)的重復文件。
文件系統搜索程序允許有限地使用通配符,諸如“?”和“*”字符以便抽象文件名,但是如果已經忘記了文件路徑中的組分的順序,這不一定有幫助。Unix系統提供了鏈接機制,從而文件可以被與一個或多個可替換的目錄相關聯。這些功能中沒有任何一種解決了文件定位和檢索中的所有根本問題。
計算機用戶將極欣賞一種組織計算機存儲器從而即使具有特定文件路徑的不完全的知識,文件也可以被容易地定位的方法。還欣賞的是一種減輕重復文件的可能性和可能導致的文件異常的計算機文件組織方法。
發明內容
提供了一種用于為計算系統內的文件命名的一般的抽象機制。簡單地說,所提出的主題將文件路徑分解為一組無序的組分,當執行文件系統搜索時所述組分被以同等的權重對待。
當保存文檔時,文件路徑的各個組分被分隔開。這包括將文件名從文件名擴展分隔開,例如“filename.doc”被分隔為“filename”和“doc”。在一個實施例中,文件名擴展成為新的,修改后的文件路徑中的第一組分。其余的組分被根據簡單的,明確的按字母數字順序排序方案重新布置在所述新文件路徑內。以這種方式,文件被按類型組織,例如,所有微軟的Word文檔被存儲在同一區域。在另一個實施例中,不是使用按字母數字順序排序的方案,文件路徑組分的順序或是由某種類型的哈希函數或是根據預先定義的排序函數確定。
在該方法的一個實施例中,僅有文件系統的一部分被根據所提出的主題被映射,即,文件系統的元素被以傳統的方式映射,并且其它部分被根據所公開的方法映射。例如,特定的目錄可以被以傳統的方式映射,并且其它目錄被根據此處說明的方法映射。在另一個實施例中,僅有特定文件路徑的一部分被根據公開的方法映射。例如,頂層目錄被保持為傳統的方式,并且子目錄被根據公開的方法映射。
所提出的方法提供了對文件的容易的訪問,即使用戶不記得特定文件路徑的準確的組分和/或順序。此外,通過將某些重復文件映射到相同的目錄,重復文件可以被發現,因此可以更有效地使用計算機存儲器。
還提供了一種采用所提出的文件映射技術的搜索技術。基于“命中”數分類和顯示文件,每個命中代表文件路徑的組分和搜索項的項之間的匹配。
當結合附圖參考公開的實施例的下述詳細說明時,可以獲得對本發明更好的理解,其中圖1是包括所提出的主題的計算系統體系結構的方框圖;圖2是構架于圖1的計算設備之上的示例的文件系統樹結構的圖;圖3是在實現所提出的主題之前,示例的典型的文件路徑的圖;圖4是在實現了公開的技術之后的圖3的文件路徑;圖5是相應于圖4的修改后的文件路徑的文件系統樹結構的圖;圖6是實現所提出的主題的文件存儲處理的流程圖;和圖7是與所提出的文件存儲技術結合在一起實現的文件搜索技術的流程圖。
具體實施例方式
雖然具體參考Windows操作系統以及使用目錄和文件的存儲結構進行說明,所提出的主題可以被實現在希望具有有效的計算機數據存儲的任意信息技術(IT)系統內。計算領域的技術人員將會認識到除了下面說明的那些之外,所公開的實施例與多種計算環境和文件存儲結構有關。此外,公開的發明的方法可以被以軟件,硬件或軟件和硬件的組合實現。所述硬件部分可以被使用專用邏輯實現;所述軟件部分可以被存儲在存儲器內,并且由適合的指令執行系統諸如微處理器,個人計算機(PC)或大型機執行。
在本文檔的上下文中,“存儲器”或“記錄介質”可以是包含,存儲,傳遞,傳播或傳輸由指令執行系統,裝置或設備使用或被結合在指令執行系統,裝置或設備內的程序和/或數據的任何裝置。存儲器和記錄介質可以是,但是不限于,電子的,磁的,光學的,電磁的,紅外線的或半導體的系統,裝置或設備。存儲器和記錄介質還包括,但不限于,例如下述便攜的計算機磁盤,隨機訪問存儲器(RAM),只讀存儲器(ROM),可擦除可編程只讀存儲器(EPROM或快速閃速存儲器),和其上可以存儲程序和/或數據的便攜壓縮盤只讀存儲器或其它適合的介質。
現在轉到附圖,圖1是結合有所提出的主題的示例的計算系統體系結構100的方框圖。臺式計算機102包括監視器104,鍵盤106和鼠標108,它們一起便于人與計算機102交互。被附加在計算機102上的是數據存儲設備110,它可以或是被結合在計算機102內,即,一個內部設備,或是被通過各種通常可得到的連接設備,諸如但不限于,通用串行總線(USB)端口(未示出)外部地附加到計算機102。
服務器計算機120被附加到數據存儲組件122,數據存儲組件122,與數據存儲110相同,可以是內部或外部設備。計算機102和服務器120被通過局域網(LAN)124通信地連接。在可替換的實施例中,計算機102和服務器120可以通過直接連接或因特網被連接。
圖2是構架于圖1的計算設備102和120以及相應的數據存儲110和122之上的示例文件系統樹結構130的圖。使用Windows的文件結構作為例子,樹130從My Computer頂層132開始。計算機102和服務器124被以節點圖標134表示,出于簡單起見,僅有它們中的一個被給予標號。由目錄圖標136表示目錄和子目錄兩者,僅有它們中的一個被給予標號,并且由文檔圖標138表示文檔,同樣僅有它們中的一個被給予標號。
被在My Computer目錄132下存儲在計算機102的數據存儲110上的是IBM目錄和Oracle目錄160。IBM目錄包括兩個子目錄DB2目錄144和Tutorial目錄156。在DB2目錄144下,一個子目錄被存儲為CLP目錄146,CLP目錄146包括子目錄或Database目錄148。Database目錄包括子目錄或Tutorial目錄150,Tutorial目錄150存儲了兩個示例的文檔,Lesson-1.doc文檔152和Lesson-2.doc文檔154。
被存儲在DB2目錄144內的Tutorial目錄156包括Lesson-1.doc文檔158。出于這個例子的目的,Lesson-1.doc文檔158是Lesson-1.doc152的被不經意地創建的復制品。在Oracle目錄160下是一個子目錄Database目錄162,Database目錄162包括子目錄Tutorial目錄164。Tutorial目錄164包括Chaper-1.doc文檔166。
圖3是在實現所提出的主題之前,示例的文件路徑180的圖。文件路徑180相應于到文檔152“Lesson-1.doc”的路徑,文檔152被存儲在計算機102(圖1和2)的數據存儲110(圖1)上。不是被顯示在如文件樹130的樹結構中,文件路徑180被示出為組分142,144,146,148,150和152(圖2),相鄰的組分被以‘/’字符分隔。計算領域的技術人員將會認識用于描述文件樹(諸如樹130)內的路徑的這種特別的命名法。
文檔152被劃分為兩個分離的組分,文件名組分192和擴展組分194。組分192和194被以‘.’字符或句點分隔。一般地,文件的擴展是文件和/或產生該文的應用的類型的良好的指示器。例如,“.doc”擴展194表示由路徑180表示的文件是相應于微軟公司發布的Word的格式。當然,文檔152可能是由不是Word的程序產生的,其僅出于兼容的目的將文檔152保存為Word格式。
圖4是在實現了公開的技術之后的相應于圖3的文件路徑180的示例文件路徑200的圖。簡言之,組分142,144,146,148,150被基于一種度量重新布置,在這個例子中為一種基于字母數字排序方案的度量。換言之,組分142,144,146,148,150被按字母順序放置。應當注意,還可以使用許多其它排序技術而不是按字母數字排序的方案。例如,作為另一種可選方案,排序可以基于一種哈希函數或一種排序函數,所述排序函數基于預先定義的評定(ranking)將一個度量分配給一個組分。排序函數度量的許多可能的例子中的兩個是基于出現的期望頻率的度量和基于預先定義的“特殊”字的度量,例如,術語“IBM”擁有比“Oracle”更高的度量。
路徑200的第一組分是相應于組分194的新的“Doc”組分196,這確保特定類型的文件共享特定文件樹的一個分枝(見圖5)。換言之,在這個例子中,所有Word格式的文檔被存儲在同一高層,Doc目錄196。在所公開的技術下被存儲在一起的文件類型的其它例子包括,但不限于,Excel或“.xls”文件,文本或“.txt”文件等。
圖5是相應于圖4的重新組織的文件路徑200的文件系統樹結構210的圖。出于簡單起見,僅示出了樹130相應于計算機102(圖1和2)的部分。應當注意,樹130的相應于服務器124的部分也被根據所公開的技術重新組織。在一種可供選擇的方案中,服務器124,并且甚至是樹130的指定的部分可以被保持為初始的排序方案。
與樹130相同,文件樹210從My Computer頂層132開始。在MyComputer目錄132下存儲在計算機102的數據存儲110(圖1)上的是Doc目錄196,如同上面結合圖4解釋的,Doc目錄196是新創建的目錄,從而特定類型或格式的文件被存儲在一起。在Doc目錄196下是CLP目錄(圖2-4)和Database目錄162(圖2-4)。
CLP目錄146包括子目錄Database目錄148(圖2-4),Database目錄148包括子目錄DB2目錄144(圖2-4)。DB2目錄144包括子目錄IBM目錄142(圖2-4),IBM目錄142包括子目錄Tutorial目錄150(圖2-4)。在Tutorial目錄150下的是文檔152(圖2-4)和154(圖2)。
在樹210中在Database目錄162下是子目錄Oracle目錄160,Oracle目錄160包括子目錄Tutorial目錄164。Tutorial目錄164包括Chapter-1.doc文檔166。
圖6是實現了所提出的主題的一個方面的文件存儲處理220的流程圖。處理開始于“開始存儲文件”方框222,并且控制緊接著進入“接收文件路徑”方框224。在方框224,處理220接收相應于被存儲的文件的被完全限定的文件名。該文件可以是任意新的或已存在的文件。例如,該文件可以由用戶保存Word文檔創建。在下面的例子中,被接收的文件路徑是文件路徑180(圖2)。然后控制進入“剖析組分”方框226,在其中處理220將文件路徑180斷開為或剖析為不同的組分142,144,146,148,150,152,192和194。
一旦分離了組分142,144,146,148,150,152,192和194,處理220進入“重新排序組分”方框228,在其中處理220根據預先定義的方案重新布置組分142,144,146,148和150的順序,并且不對相關的組分192和194進行這種重新排序,而是以下面說明的不同的方式進行處理。所提出的主題的一個實施例通過以字母順序放置組分142,144,146,148和150使用按字母數字排序的方案。另一個實施例可以使用哈希方案或基于排序函數對所述組件進行排序。本領域所技術人員將會認識到有多種可能的排序方案可以被選擇用于所提出的主題的特定實現。
一旦組分142,144,146,148和150被重新排序,處理220進入“產生新路徑”方框230,在其中處理220從組分142,144,146,148,150和194創建上面結合圖4和5說明的修改后的路徑200。路徑200的第一個元素是目錄196,如上所述其相應于擴展194,并且最后的元素是文件名152。在Doc目錄196和文件名稱152之間是以方框228中確定的順序重新排序的組分146,148,144,142和150。
一旦產生了新的路徑,控制進入“重復文件?”方框232,在其中處理220確定在方框230中創建的路徑是否已經被其它文件使用,即,該文件是否是復制品。某些時候文件可能被不經意地位于兩個不同的位置。所公開的文件存儲技術能夠揭示已經被使用重新布置的文件路徑存儲的文件的存在。如果該文件不是復制品,則處理220進入“存儲文件”方框,在其中處理220使用在方框230中產生的文件路徑將文件存儲在數據存儲110中。
如果在方框232中,處理220確定了重復文件的存在,控制進入“通知用戶”方框236,在其中將沖突通知給保存文件的用戶。然后處理220進入“采取被要求的活動”方框238,在其中給用戶提供若干選項,并且執行一個被選擇的選項。例如,詢問用戶是否放棄該新文件,或使用該新文件覆蓋被檢測到的復制品。
最后,從采取被要求的活動方框238和存儲文件方框234,處理220進入“結束存儲文件”方框239,在其中處理220結束。
圖7是被與所提出的文件存儲技術結合在一起實現的文件搜索處理250的流程圖。處理250工作于文件樹結構上,諸如根據上面結合圖6所述的處理220被組織的文件樹210。
處理250開始于“開始搜索文件”方框252,并且控制緊接著進入“初始化搜索”方框254。在初始化搜索方框254中,處理250將通常被通過用戶以鍵盤106(圖1)傳輸的搜索串剖析為分離的搜索項,并且將一個計數變量(未示出)設置為0(‘0’)。所述搜索串代表用戶(在這個例子中)在文件樹210的文件路徑中搜索的項。
被用作下面的說明的例子的搜索串是“(database tutorial lesson*)”。響應這個示例的搜索串,處理250尋找包括與項“database”,項“tutorial”匹配的組分,以及或是與項“lesson”匹配或以項“lesson”開頭(例如項“lesson-1”)的組分的目錄路徑。字符“*”是通配符,它匹配沒有或任意數目的字符。字符“?”是通常被用于剛好匹配一個字符的通配符。本領域的技術人員應當熟悉這些和其它通配符以及它們的使用。
在方框254中,處理250還將從所述搜索串中剖析出的第一個項設置為當前搜索項,在該例子的第一個迭代中是項“database”。然后處理250進入“得到頂部節點”方框256,在其中當前節點被設置為文件目錄樹210的頂層組分,作為當前搜索節點,在這個例子中為My Computer102。
控制進入“組分匹配?”方框258,在其中處理250確定被執行的節點的第一組分是否與當前搜索項匹配。如果是的,處理250進入“保存文件路徑”方框260,在其中將對包括該匹配節點的整個文件路徑的引用存儲在存儲器中,以便用于以后的引用。然后處理250進入“增加計數”方框262,在其中,被在方框254初始化為“0”值的計數被增加,從而可以計算特定文件路徑的匹配或“命中”數目。然后控制進入“有更多的節點?”方框264。
如果在方框258,當前搜索項不與被執行的文件路徑的當前組分或節點匹配,控制也進入有更多的節點?方框264。在方框264,處理250確定當前樹是否完全被遍歷了。如果沒有,控制進入“得到下一個節點”方框266,在其中處理250將樹210中的另一個相鄰的節點設置為當節點。存在本領域的技術人員知道的多種用于遍歷文件樹的技術,只要一次只使用一種技術,任何技術都適用于選擇下一個節點以便執行。一旦在方框266已經選擇了下一個節點,處理250返回方框258,并且處理如上面所述繼續。
如果處理250在方框264確定文件樹210的所有節點都已經被檢查了。則處理250進入“有更多的項?”方框268,在其中處理250確定所述搜索項中的每個項是否已經被處理了。如果沒有,處理250進入“得到下一個項”方框270,在其中下一個未被處理的項被設置為當前搜索項,并且命中的當前計數被重置為“0”值。然后控制返回得到頂部節點方框256,并且處理如上所述繼續。
如果在有更多的項?方框268中,處理250確定所述搜索串的所有項已經被處理了,則控制進入“處理和分類結果”方框,在其中處理250消除在方框260中保存的文件路徑列表中的重復項,并且基于如在方框262中記錄的命中數對文件路徑分類。可以基于其它因素進行進一步的分類,諸如,但不限于,命中在所述串中的位置,以及特定的文件路徑是否代表本地或遠程數據存儲。然后處理250進入“顯示結果”方框274,在其中所有搜索和處理的結果被顯示以便用戶觀看。下面提供并解釋了搜索結果的一個例子。然后控制進入“結束搜索文件”方框279,其中處理結束。
下面的搜索結果基于示例的搜索串“(database tutorial lesson*)”和文件樹210,其包括沒有在圖5中示出的相應于文件樹130(圖2)的部分1.DOC/CLP/DATABASE/DB2/IBM/TUTORIAL/LESSON-1.DOC2.DOC/CLP/DATABASE/DB2/IBM/TUTORIAL/LESSON-2.DOC…3.DOC/IBM/TUTORIAL/LESSON-1.DOC…
4.DOC/DATABASE/ORACLE/TUTORIAL/CHAPTER-1.DOC…5.DOC/DATABASE/IBM/TUTORIAL/CHAPTER-1.DOC6.DOC/DATABASE/IBM/TUTORIAL/CHAPTER-2.DOC搜索返回按相應于所述搜索串的命中數分類的六個(6)條目。每個條目#1和2有三個(3)命中,因為它們都具有匹配全部三個(3)搜索項的項。在條目#2和3之間顯示一個空行,以便區分具有不同“命中”得分的相應條目。每個條目#3-6得到兩個(2)命中的得分,但是基于這樣的因素具有不同的得分,諸如相應的文件被本地地存儲還是遠程地存儲,以及哪個搜索項對相應的命中有得分貢獻,例如較后面的項比較前面的項得到更高的得分。換言之,通過重新對搜索串排序,用戶可以控制結果列表的順序。當然,本領域的技術人員應當認識到,有許多可行的和有效的搜索,打分和顯示選擇。
雖然已經參考特定的實施例示出和說明了本發明,本領域的技術人員應當理解,可以在形式上和細節上對其進行上述的和其它的改變而不脫離本發明的精神和范圍,包括但不限于附加的,更少的或修改的元件和/或被以相同或不同順序執行的附加的,更少的或修改的方框。
權利要求
1.一種用于組織計算機系統內的文件的方法,所述每個文件具有兩個或多個組分的文件路徑,該方法包括接收在一個文件路徑位置存儲信息的請求;通過基于第一排序規范修改所述路徑組分的順序,轉換所述文件路徑位置;和在轉換的文件路徑位置處存儲所述信息。
2.如權利要求1的方法,所述修改所述文件路徑的順序包括給所述兩個或多個組分中的每一個組分分配度量;和基于所述度量重新排列所述路徑組分的順序。
3.如權利要求2的方法,其中所述度量基于字母數字值。
4.如權利要求2的方法,其中每個所述度量基于排序函數。
5.如權利要求1的方法,還包括在存儲信息之前,通過在每個文件路徑的開頭放置附加的組分,修改所述轉換的文件路徑位置。
6.如權利要求5的方法,其中每個所述附加的組分基于與相應文件相關聯的文件擴展。
7.如權利要求1的方法,還包括轉換第二文件路徑位置;和基于轉換的第二文件路徑位置,檢索以前被根據該方法存儲的存儲文件。
8.一種用于組織計算機系統中的文件的系統,包括包括兩個或多個組分的文件路徑;用于接收在所述文件路徑位置存儲信息的請求的邏輯;用于通過基于第一排序規范修改所述路徑組分的順序,轉換所述文件路徑位置的邏輯;和用于在轉換的文件路徑位置處存儲所述信息的邏輯。
9.如權利要求8的系統,所述用于修改文件路徑的順序的邏輯包括用于給所述兩個或多個組分中的每一個組分分配度量的邏輯;和用于基于所述度量重新排列所述路徑組分的順序的邏輯。
10.如權利要求9的系統,其中所述度量基于字母數字值。
11.如權利要求9的系統,其中每個所述度量基于排序函數。
12.如權利要求8的系統,還包括用于通過在每個文件路徑的開頭放置附加的組分,修改所述轉換的文件路徑位置的邏輯。
13.如權利要求12的系統,其中每個所述附加的組分基于與相應文件相關聯的文件擴展。
14.如權利要求8的系統,還包括以前被根據該系統存儲的存儲文件;用于轉換第二文件路徑位置的邏輯;和用于基于所述轉換的第二文件路徑位置,檢索所述以前的存儲文件的邏輯。
15.一種用于組織計算機系統內的文件的計算機程序產品,每個所述文件具有兩個或多個組分的文件路徑,該產品包括存儲器;被存儲在所述存儲器上的用于接收在所述文件路徑位置存儲信息的請求的邏輯;被存儲在所述存儲器上的用于通過基于第一排序規范修改所述路徑組分的順序,轉換所述文件路徑位置的邏輯;和被存儲在所述存儲器上的用于在轉換的文件路徑位置處存儲所述信息的邏輯。
16.如權利要求15的計算機程序產品,所述用于修改所述文件路徑的順序的邏輯包括被存儲在所述存儲器上的用于給所述兩個或多個組分中的每一個組分分配度量的邏輯;和被存儲在所述存儲器上的用于基于所述度量重新排列所述路徑組分的順序的邏輯。
17.如權利要求16的計算機程序產品,其中所述度量基于字母數字值。
18.如權利要求16的計算機程序產品,其中每個所述度量基于排序函數。
19.如權利要求15的計算機程序產品,還包括被存儲在所述存儲器上的用于通過在每個文件路徑的開頭放置附加的組分,修改所述轉換的文件路徑位置的邏輯。
20.如權利要求19的計算機程序產品,其中每個所述附加的組分基于與相應文件相關聯的文件擴展。
全文摘要
提供了一種用于給計算系統內的文件命名的抽象機制。當文檔被存儲時,文件路徑的各個組分被分隔開,并且文件名擴展成為新的文件路徑中的第一組分。其余的組分被根據簡單的字母數字排序方案重新布置到新的文件路徑中。在另一個實施例中,文件路徑組分的順序或是由某種類型的哈希函數或是根據預先定義的排序函數確定。還提供了一種使用所提出的文件映射技術的搜索技術。文件路徑被間斷為無序的組分集合,當執行搜索時這些組分被以同等的權重處理。文件被基于“命中”數分類和顯示,每個命中代表所述文件路徑的組分和搜索項的項之間的匹配。
文檔編號G06F17/30GK1773497SQ20051011512
公開日2006年5月17日 申請日期2005年11月10日 優先權日2004年11月12日
發明者J·M·麥卡德勒 申請人:國際商業機器公司