孫超,柳少偉,瞿聰,朱立波
摘 要:開發(fā)一款基于Windows環(huán)境的工具軟件,可以自動識別文件類別特征,滿足用戶的條件分類管理;既可以輕便地邏輯管理,又可以實現(xiàn)自動移動文件至指定文件夾的分類管理。該軟件可以成為Windows的一個綠色插件,也可以獨立使用,實現(xiàn)對電腦內(nèi)和移動存儲器內(nèi)的文件的自動分類管理。
關(guān)鍵詞:軟件開發(fā);綠色插件;分類管理
1 應(yīng)用需求
隨著時間的推移,存儲在計算機中的文件類型越來越復(fù)雜、數(shù)量也越積越多,造成了文件的龐大冗余,為日后的使用、查看、整理帶來越來越多的困難。這幾十年來,計算機技術(shù)飛速發(fā)展,越來越多的應(yīng)用程序和信息系統(tǒng)被開發(fā)、被完善,可是針對文件管理的卻少之又少。在微軟開發(fā)的windows系統(tǒng)中自動集成的一個“文件搜索”的應(yīng)用功能,但這沒有針對性,不能滿足人們對文件特殊操作的需求。windows系統(tǒng)中的“文件搜索”使用耗時,模糊查找功能薄弱,人們在日常生活中基本不用這個“文件搜索”。因此,為滿足針對有用文件的歸類、合并、刪除的管理,設(shè)計一款幫助人們自動、快捷、簡便地處理文件的工具“文件自動分類管理軟件系統(tǒng)”成為迫切需要。
2 系統(tǒng)目標(biāo)與分析
2.1 功能目標(biāo)
文件自動分類管理軟件系統(tǒng)將以用戶需求為導(dǎo)向,在目標(biāo)存儲空間里,對磁盤創(chuàng)建索引,記錄磁盤內(nèi)文件分布信息,刪除重復(fù)的、空的文件和文件夾;自動快速地比對文件,分析文件相似度,確認文件冗余情況,而后合并目標(biāo)文件或文件夾。
本系統(tǒng)將成為Windows的一個綠色插件,可以嵌入到操作系統(tǒng)或者單獨使用。
2.2 系統(tǒng)分析
創(chuàng)建索引:遍歷各個存儲器(C、D、E、F等系統(tǒng)可以管理的盤符)的全部文件,包括各種類型、各個大小、不同產(chǎn)生日期的文件,將文件名和文件絕對路徑記錄在特定數(shù)據(jù)文件中,使用戶可以通過查閱索引文件了解全系統(tǒng)文件的分布情況。同時,索引文件也為查找文件和刪除文件提供快捷通道。
查找文件:用戶輸入文件名、文件類型或其它關(guān)鍵詞,遍歷索引文件,查找相匹配的文件,返回相匹配的文件的絕對路徑。
刪除文件:用戶輸入文件名、文件類型或其它關(guān)鍵詞,遍歷索引文件,查找相匹配的文件,用戶從返回列表中選擇確定刪除的文件。
檢查文件:根據(jù)用戶選擇的目標(biāo)磁盤或文件夾,進行檢查是否有相同文件(文件名相同),使用戶初步了解目標(biāo)磁盤或文件夾中文件的冗余情況。
對比文件:用戶輸入兩個文件的絕對路徑,比對兩個文件中數(shù)據(jù)內(nèi)容,查看是否相同,比如文件的大小、產(chǎn)生日期等屬性是否相同而進一步確定文件是否冗余。
模塊分析是描述系統(tǒng)需求的一個過程,需要將需求分析中感性描述進行抽象,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)的一個關(guān)鍵過程。分析清楚各個功能之后,分層次將其歸納與整理,形成個層次的功能結(jié)構(gòu)圖,然后自上而下的逐層歸納與整理,形成以系統(tǒng)目標(biāo)為核心的整個系統(tǒng)的功能結(jié)構(gòu)圖。本軟件系統(tǒng)包括創(chuàng)建索引、查找文件、檢查文件、比對文件、刪除文件和幫助等功能模塊,如圖1所示。
3 軟件開發(fā)
軟件開發(fā)過程包含了系統(tǒng)設(shè)計過程,就是在保證實現(xiàn)邏輯模型的基礎(chǔ)上,盡可能提高系統(tǒng)的各項指標(biāo),即系統(tǒng)的工作效率、可靠性、工作質(zhì)量、可變性與經(jīng)濟性等。本軟件采用了結(jié)構(gòu)化設(shè)計方法(SD,Structured Design),與分析階段的結(jié)構(gòu)化設(shè)計方法銜接起來使用。遵循系統(tǒng)性、靈活性、可靠性等原則,按照從概要設(shè)計到詳細設(shè)計,從粗到細、從總體到局部的過程進行。進一步實現(xiàn)系統(tǒng)分析階段提出的系統(tǒng)模型,詳細的確定系統(tǒng)的結(jié)構(gòu)、應(yīng)用軟件的開發(fā)方法及內(nèi)容。
3.1 技術(shù)路線
本軟件系統(tǒng)采用Java語言進行開發(fā),主要考慮了三個原因:一.JAVA是面向?qū)ο蟮拈_發(fā)工具,它集成了對象及接口的屬性與方法,提供了簡單的類機制及動態(tài)的接口模型。使程序編寫過程簡便了許多。二.JAVA的穩(wěn)健性。在編譯和運行時,它都要對可能出現(xiàn)的一些問題進行檢查,以消除錯誤的產(chǎn)生。三.JAVA的跨平臺性。Java語言編寫的程序在不同的平臺之間具有良好的可移植性和輕便性。雖然開發(fā)是基于windows XP操作系統(tǒng)下進行的,但軟件可以在各種操作系統(tǒng)下運行,滿足軟件系統(tǒng)推廣使用的需要。
3.2 用戶接口
為了適應(yīng)各種水平層次人員的方便使用,系統(tǒng)中設(shè)計了友好性的人機交換界面,即用戶接口。具有人性化、人體工學(xué)的特性。技術(shù)上選用了java.awt包的GridBagLayout類,該設(shè)計模式能夠設(shè)計出復(fù)雜而豐富的用戶界面。使用時用戶進入主界面窗口,看到有圖1所述功能的六個命令按鈕組成的命令按鈕組,用戶根據(jù)自己的需求選擇按鈕,點擊進入相應(yīng)子界面。
3.3 幾項重要設(shè)計
(一)文件目錄樹。它是直觀管理軟件的工具,可以使用滾動條。添加JAVA中Continer類能夠簡單地實現(xiàn)該方法。
(二)文件權(quán)限管理。有些隱私文件,用戶需要對他人保密,現(xiàn)在更多用戶選擇把文件放在復(fù)雜的磁盤目錄下。這種方法不但給用戶查找文件帶來麻煩,有時甚至?xí)凰藷o意發(fā)現(xiàn),這就顯得保密措施的不合理性,本系統(tǒng)采用了動態(tài)加密方法。根據(jù)文件的相關(guān)屬性,比如標(biāo)題、時間等屬性來自動產(chǎn)生密碼,也可以由用戶設(shè)定密碼生成規(guī)則,同時,也為用戶提供了自己設(shè)定密碼功能,這樣文件的保密性相對地比較好了。所有的文件處理過程都引入了java.io包里的File類,如Setwritable、SetreadOnly等。
(三)文件拷貝和文件刪除。它們是文件管理中必需的模塊。文件的刪除直接使用delete方法就行,比較簡單。但對于文件拷貝,需要用到j(luò)ava.io包,設(shè)計兩個實例對象,利用數(shù)據(jù)流的形式可以快捷的文件拷貝。
(四)數(shù)據(jù)存儲。為了提高對磁盤文件查找和刪除的效率,需要創(chuàng)建一個全磁盤索引文件用于查詢文件的數(shù)據(jù)存儲。操作過程中軟件系統(tǒng)對所有的可用磁盤進行掃描,建立索引文件(將文件的路徑、名稱、大小、屬性等信息保存到該文件中),刪除文件和查找文件時也將利用該索引文件,以減少時間。
使用鏈表作為磁盤索引的存貯形式,存貯文件的名稱和絕對路徑信息。軟件運行中存儲與讀取的數(shù)據(jù),也可采用鏈表或動態(tài)數(shù)組的形式存儲。鏈表是以二進制形式存儲,占用內(nèi)存較小,適用于較大數(shù)據(jù)量、提高程序運行效率;動態(tài)數(shù)組相對占用較大內(nèi)存,易操作,數(shù)據(jù)量小的操作較方便。根據(jù)不同類型的數(shù)據(jù)采用不同形式存儲。
另外,索引數(shù)據(jù)(鏈表形式)可按需求存儲到txt文本文件中或數(shù)據(jù)庫中。txt文本文件特點是簡單方便、普適性好,數(shù)據(jù)庫文件特點是必須有規(guī)則地存貯、事先建立索引功能,才能在使用時快捷地讀取數(shù)據(jù)??紤]到不是所有用戶都安裝了數(shù)據(jù)庫系統(tǒng),所以本軟件的索引數(shù)據(jù)不采用數(shù)據(jù)庫存貯而利用文本文件進行儲存。
數(shù)據(jù)存儲過程中還需要對數(shù)據(jù)進行排序,滿足建立索引的需要。排序分為動態(tài)排序和靜態(tài)排序,動態(tài)排序是在建立索引文件期間,掃描每一個文件存入索引文件的同時,類似插入排序方法插入索引數(shù)據(jù),同時進行排序。這樣磁盤遍歷結(jié)束時便生成了一個有序的索引文件;靜態(tài)排序方法就是等系統(tǒng)收集到全部文件數(shù)據(jù)后再進行排序。兩種排序方法,對于數(shù)據(jù)量大的操作來說,很明顯靜態(tài)排序方法處理的速度比較動態(tài)排序方法慢,花費的時間大約是動態(tài)排序方法的兩倍。本軟件中采用動態(tài)排序的插入排序方法,在建立索引文件時利用插入法,將數(shù)據(jù)插入到排序后的位置生成一個有序鏈表。
4 結(jié)論
人們利用文件自動分類處理軟件可以提高操縱計算機的靈活性和方便性,將來在文件版本管理方面也會起到幫助作用;本軟件的功能和設(shè)計技術(shù)今后也可以應(yīng)用到云存儲領(lǐng)域。
參考文獻:
[1] 張帆.Java范例開發(fā)大全[M].北京:清華大學(xué)出版社,2010.
[2] 徐仁佐等.軟件工程[M].武漢:華中科技大學(xué)出版社,2002.
本文系“江蘇省高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃2013年立項項目(201351256029X)”的成果。endprint