專利名稱:設(shè)置Windows文件夾權(quán)限的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交互顯示技術(shù)領(lǐng)域,尤其涉及一種設(shè)置Windows文件夾權(quán)限的方法。
背景技術(shù):
隨著人們保密意識的加強,對文件進行權(quán)限設(shè)置已被越來越多的人所重視。目前, 大部分對Windows文件夾進行權(quán)限設(shè)置的方法都存在一個缺點,那就是設(shè)置完權(quán)限后無跡可尋,用戶無法一目了然的得知哪些文件夾是已經(jīng)被設(shè)置過權(quán)限的、哪些文件夾又是未被設(shè)置過權(quán)限的,這樣容易導(dǎo)致用戶忘記自己曾經(jīng)做過的操作,用戶體驗很差。而且,采用現(xiàn)有技術(shù)對Windows文件夾進行權(quán)限設(shè)置的時候還會存在諸如不夠靈活和效率比較低的問題。例如用戶需要對文件夾A的子文件夾進行權(quán)限設(shè)置,當(dāng)文件夾A 的所有子文件夾都被設(shè)置權(quán)限后,用戶希望文件夾A也具有與其子文件夾相同的權(quán)限。如果使用一般的權(quán)限設(shè)置方法,由于無法識別文件夾是否已經(jīng)被設(shè)置過權(quán)限,因此需要對文件夾A及其所有子文件夾重新進行權(quán)限設(shè)置,該操作無疑存在大量重復(fù)的權(quán)限設(shè)置,這樣一來大大地降低了程序執(zhí)行效率。另外一種情況就是當(dāng)文件夾A有部分子文件夾已經(jīng)被設(shè)置權(quán)限,當(dāng)用戶直接對文件夾A進行權(quán)限設(shè)置時,由于無法得知具體哪些子文件夾已經(jīng)被設(shè)置過權(quán)限,因此程序會對這部分已經(jīng)被設(shè)置過權(quán)限的文件夾再次進行權(quán)限設(shè)置,這種情況下同樣會存在大量的重復(fù)操作,嚴(yán)重影響了程序的執(zhí)行效率,浪費用戶時間。因此,如何為用戶提供一種一目了然、靈活方便并且具有較高效率的設(shè)置Windows 文件夾權(quán)限的方法,成為亟待解決的問題。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提供一種設(shè)置Windows文件夾權(quán)限的方法,能夠?qū)⒈辉O(shè)置過權(quán)限的文件夾與未被設(shè)置過權(quán)限的文件夾進行有效區(qū)分,從而提高設(shè)置Windows文件夾權(quán)限的效率。為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種設(shè)置Windows文件夾權(quán)限的方法,包括以下步驟以樹形結(jié)構(gòu)顯示W(wǎng)indows文件夾系統(tǒng),并在每個文件夾名字前面添加一個控件,該控件將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾以不同的形式體現(xiàn)出來。本發(fā)明的設(shè)置Windows文件夾權(quán)限的方法,通過在Windows文件夾名字前面添加一個控件以將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾用不同的形式體現(xiàn)出來,使用戶可以一目了然的知道哪些文件夾已經(jīng)被設(shè)置過權(quán)限、哪些文件夾尚未被設(shè)置權(quán)限,這樣一來可以有效避免用戶在進行權(quán)限設(shè)置時對已經(jīng)設(shè)置過權(quán)限的文件夾進行重復(fù)設(shè)置,靈活方便,且明顯提高了程序的執(zhí)行效率,給用戶帶來良好的體驗。
圖I為權(quán)限設(shè)置前的初始效果示意圖2為權(quán)限設(shè)置后的效果示意圖;圖3為更進一步地權(quán)限設(shè)置后的效果示意圖;其中,顏色最深的鎖的狀態(tài)為NULL,灰色鎖的狀態(tài)為True,打開的鎖的狀態(tài)為
False。
具體實施例方式本發(fā)明提供一種設(shè)置Windows文件夾權(quán)限的方法,能夠解決現(xiàn)有技術(shù)中對 Windows文件夾進行權(quán)限設(shè)置時不能一目了然的得知哪些是被設(shè)置過權(quán)限的文件夾、哪些是未被設(shè)置權(quán)限的文件夾以及設(shè)置權(quán)限不夠靈活方便并且效率比較低的問題。本發(fā)明的設(shè)置Windows文件夾權(quán)限的方法,包括以下步驟以樹形結(jié)構(gòu)顯示W(wǎng)indows文件夾系統(tǒng),并在系統(tǒng)中的每個文件夾名字前面添加一個控件,該控件將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾以不同的形式體現(xiàn)出來。以樹形結(jié)構(gòu)顯示W(wǎng)indows文件夾系統(tǒng)的好處是使系統(tǒng)的結(jié)構(gòu)清楚,識別度高,后期管理也比較容易。另外作為一個較好的實施例,在進行程序設(shè)計時,可以使用 WPF (Windows Presentation Foundation)應(yīng)用程序中的 TreeView 控件來顯不 Windows 文件夾系統(tǒng)中的文件夾信息。用戶可通過樹形結(jié)構(gòu)選擇文件夾進行權(quán)限設(shè)置,被設(shè)置過權(quán)限的文件夾在樹形結(jié)構(gòu)中將以不同于未被設(shè)置權(quán)限文件的形式體現(xiàn)出來,這樣可以有效避免用戶在進行權(quán)限設(shè)置時對已經(jīng)設(shè)置過權(quán)限的文件夾進行重復(fù)設(shè)置。優(yōu)選的,所述在每個文件夾名字前添加的控件可以為CheckBox控件。該CheckBox 控件的屬性IsChecked值包括True、False以及NULL。我們對其進行定義如下當(dāng)文件夾及其所有子文件夾、文件均已被用戶進行權(quán)限設(shè)置時,所述屬性 IsChecked 值為 True ;當(dāng)文件夾及其所有子文件夾、文件未被設(shè)置權(quán)限時,所述屬性IsChecked值為 False ;當(dāng)文件夾有(且僅有)部分子文件夾被用戶進行權(quán)限設(shè)置時,所述屬性IsChecked 值為NULL。本發(fā)明的設(shè)置Windows文件夾權(quán)限的方法,還可以包括如下步驟TreeView初始化,即在每次程序退出時,將當(dāng)前樹形結(jié)構(gòu)的文件夾權(quán)限改變信息保存為一個文件,然后在下次程序啟動時根據(jù)該文件保存的信息對TreeView控件的顯示內(nèi)容進行初始化,上述文件中只保存有TreeView中文件夾狀態(tài)為NULL或者為True的文件夾絕對路徑。初始化前, TreeView的顯示內(nèi)容為空,初始化后,TreeView中能夠顯示系統(tǒng)的文件夾目錄以及用戶最近一次的對文件夾進行權(quán)限設(shè)置的信息。為了進一步提高程序啟動效率,程序啟動時一般只會在TreeView中生成兩級目錄,然后再根據(jù)信息保存文件還原用戶操作信息。方法如下如果從信息保存文件中得知該文件夾狀態(tài)應(yīng)為NULL,程序就會把其在TreeView中狀態(tài)改為Null然后遍歷其子文件夾,如果其子文件夾有文件狀態(tài)應(yīng)為NULL就繼續(xù)遍歷下一級,否則返回上一級目錄繼續(xù)遍歷,以此類推,實際上是一個遞歸過程。當(dāng)在此遍歷過程中發(fā)現(xiàn)文件夾的權(quán)限應(yīng)該為True就會把其在TreeView中的狀態(tài)改為True,其所有子文件夾在TreeView中的狀態(tài)也為True。
TreeView初始化后,用戶在TreeView中選擇需要設(shè)置權(quán)限的文件夾或者選擇需要撤銷權(quán)限的文件夾后點擊權(quán)限設(shè)置按鈕就開始進行權(quán)限的設(shè)置(用戶需預(yù)先定義好需要設(shè)置的權(quán)限類型)。為了進一步提高權(quán)限設(shè)置的靈活性,在對文件夾進行權(quán)限設(shè)置時,不能夠把該權(quán)限設(shè)置也應(yīng)用于其子文件夾和子對象,這時首先需要遍歷其所有子文件夾然后對該文件夾進行權(quán)限設(shè)置。權(quán)限設(shè)置開始時,程序會首先把當(dāng)前的TreeView文件夾狀態(tài)與上一次的權(quán)限設(shè)置后的TreeView文件夾狀態(tài)進行比較。具體比較情況如下①當(dāng)前文件夾狀態(tài)為NULL,上一次設(shè)置后狀態(tài)為True時,繼續(xù)遍歷該文件夾的子文件夾,并找出所有當(dāng)前狀態(tài)為False的文件夾,撤銷這些文件夾(包括其所有子文件夾) 的權(quán)限設(shè)置;如果上一次狀態(tài)為NULL,則繼續(xù)遍歷其子文件夾;如果上一次狀態(tài)為False, 繼續(xù)遍歷該文件夾的子文件夾,并找出所有當(dāng)前狀態(tài)為True的子文件夾,然后對它們(包括其所有子文件夾)進行權(quán)限設(shè)置;②當(dāng)前文件夾A狀態(tài)為True,上一次設(shè)置后狀態(tài)為NULL時,繼續(xù)遍歷該文件夾的子文件夾,如果其還有子文件夾狀態(tài)為NULL,則繼續(xù)遍歷,此實際上為一遞歸過程。找出所有以前狀態(tài)為False的子文件夾,對這些文件夾(包括其所有子文件夾)進行權(quán)限設(shè)置。另外此時還會判斷該文件夾A是否已經(jīng)被設(shè)置權(quán)限,如果沒有則對該文件夾A進行權(quán)限設(shè)置; 如果上一次狀態(tài)為False,則對該文件夾(包括其所有子文件夾)進行權(quán)限設(shè)置;③文件夾A如果當(dāng)前狀態(tài)為False,并且以前狀態(tài)為True,則撤銷這些文件夾的權(quán)限設(shè)置;如果以前狀態(tài)為NULL,則繼續(xù)遍歷其子文件夾,找出所有以前為True狀態(tài)的子文件夾,然后撤銷這些子文件夾的權(quán)限設(shè)置,此時還會判斷該文件夾A是否被設(shè)置權(quán)限,如果是則撤銷其的權(quán)限設(shè)置。為了進一步提高對文件夾(包括其所有子文件夾)進行權(quán)限設(shè)置的效率,在遍歷所有子文件夾進行權(quán)限設(shè)置時,可以使用能直接枚舉文件夾的所有子文件夾的方法、而不是寫一個遞歸函數(shù)(例如GetDirectories ()和GetFilesO這類函數(shù))去遍歷所有子文件夾,這樣能夠大大地提高遍歷文件夾的效率??梢允褂靡韵潞瘮?shù)進行遍歷foreach(string folder in Directory. GetFiles (p, " * " , SearchOption. AllDirectories)){}下面結(jié)合附圖和具體的實施例來對本發(fā)明的方案作進一步的描述啟動Windows文件夾權(quán)限設(shè)置程序,如圖I所不,假設(shè)當(dāng)前所有文件夾狀態(tài)均為 False (本實施例中以文件夾名字前面那把鎖的幾種不同狀態(tài)來區(qū)分文件夾是否有被設(shè)置權(quán)限,其中,顏色最深的鎖的狀態(tài)代表該文件夾狀態(tài)為NULL,灰色鎖的狀態(tài)代表該文件夾狀態(tài)為True,打開的鎖的狀態(tài)代表該文件夾狀態(tài)為False),可見初始情況下,各文件夾名字面前的那把鎖均為打開狀態(tài),任意選中幾個文件夾使其狀態(tài)為True,然后點擊權(quán)限設(shè)置按鈕,程序開始對這些文件夾以及所有子文件夾進行權(quán)限設(shè)置。權(quán)限設(shè)置完畢后,檢查這些文件夾的權(quán)限信息,發(fā)現(xiàn)已經(jīng)按要求改變。然后關(guān)閉權(quán)限設(shè)置程序,當(dāng)再次打開程序時,如圖2 所示,發(fā)現(xiàn)由上到下的八把鎖的狀態(tài)由之前的全部打開變成了第I把鎖為黑色鎖(顏色最深,表不NULL)、第3、4、5、7把鎖成為閉合的灰色鎖(表不True),則表明米用本發(fā)明的方法進行操作后,能夠正確顯示之前設(shè)置的文件夾狀態(tài),而且一目了然。可以進一步驗證本發(fā)明方法的正確性。首先啟動Windows文件夾權(quán)限設(shè)置程序, 假設(shè)初始狀態(tài)如圖2所示,采用本發(fā)明的方法進行權(quán)限修改后關(guān)閉程序,然后再次打開程序進行查看,發(fā)現(xiàn)結(jié)果如圖3所示,經(jīng)驗證,文件權(quán)限修改成功,并且沒有重復(fù)修改文件夾權(quán)限,效率比較高,用戶體驗也比較好。通過以上方案可以看了,本發(fā)明的設(shè)置Windows文件夾權(quán)限的方法,通過在 Windows文件夾名字前面添加一個控件以將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾用不同的形式體現(xiàn)出來,使用戶可以一目了然的知道哪些文件夾已經(jīng)被設(shè)置過權(quán)限、哪些文件夾尚未被設(shè)置權(quán)限,這樣一來可以有效避免用戶在進行權(quán)限設(shè)置時對已經(jīng)設(shè)置過權(quán)限的文件夾進行重復(fù)設(shè)置,靈活方便,且明顯提高了程序的執(zhí)行效率,給用戶帶來良好的體驗。以上所述的本發(fā)明實施方式,并不構(gòu)成對本發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護范圍之內(nèi)。
權(quán)利要求
1.一種設(shè)置Windows文件夾權(quán)限的方法,其特征在于,包括以下步驟以樹形結(jié)構(gòu)顯示W(wǎng)indows文件夾系統(tǒng),并在每個文件夾名字前面添加一個控件,該控件將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾以不同的形式體現(xiàn)出來。
2.根據(jù)權(quán)利要求I所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,所述顯示 Windows文件夾系統(tǒng)的過程具體包括使用WPF中的TreeView控件來顯示W(wǎng)indows文件夾系統(tǒng)中的文件夾信息。
3.根據(jù)權(quán)利要求2所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,所述在每個文件夾名字前添加的控件為CheckBox控件。
4.根據(jù)權(quán)利要求3所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,所述 CheckBox 控件的屬性 IsChecked 值包括True、False 以及 NULL ;當(dāng)文件夾及其所有子文件夾、文件均已被用戶進行權(quán)限設(shè)置時,所述屬性IsChecked 值為True ;當(dāng)文件夾及其所有子文件夾、文件未被設(shè)置權(quán)限時,所述屬性IsChecked值為False ;當(dāng)文件夾有部分子文件夾被用戶進行權(quán)限設(shè)置時,所述屬性IsChecked值為NULL。
5.根據(jù)權(quán)利要求4所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,還包括步驟 每次程序退出時,將當(dāng)前樹形結(jié)構(gòu)的文件夾權(quán)限改變信息保存為一個文件,然后在下次程序啟動時根據(jù)該文件保存的信息對TreeView控件的顯示內(nèi)容進行初始化,所述文件中保存有TreeView中文件夾狀態(tài)為NULL或者為True的文件夾絕對路徑。
6.根據(jù)權(quán)利要求1-5任意一項所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,在對文件夾進行權(quán)限設(shè)置時,首先遍歷其所有子文件夾,然后對該文件夾進行權(quán)限設(shè)置。
7.根據(jù)權(quán)利要求6所述的設(shè)置Windows文件夾權(quán)限的方法,其特征在于,所述遍歷所有子文件夾的過程具體包括使用直接枚舉文件夾的所有子文件夾的方法來遍歷所有子文件夾。
全文摘要
本發(fā)明提供一種設(shè)置Windows文件夾權(quán)限的方法,包括以下步驟以樹形結(jié)構(gòu)顯示W(wǎng)indows文件夾系統(tǒng),并在每個文件夾名字前面添加一個控件,該控件將被設(shè)置過權(quán)限的文件夾與未被設(shè)置權(quán)限的文件夾以不同的形式體現(xiàn)出來。通過本發(fā)明的設(shè)置Windows文件夾權(quán)限的方法,使用戶可以一目了然的知道哪些文件夾已經(jīng)被設(shè)置過權(quán)限、哪些文件夾尚未被設(shè)置權(quán)限,這樣一來可以有效避免用戶在進行權(quán)限設(shè)置時對已經(jīng)設(shè)置過權(quán)限的文件夾進行重復(fù)設(shè)置,靈活方便,且明顯提高了程序的執(zhí)行效率,給用戶帶來良好的體驗。
文檔編號G06F9/44GK102591639SQ201110419758
公開日2012年7月18日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者陸明添 申請人:廣東威創(chuàng)視訊科技股份有限公司