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