2012-12-18 41 views
7

我對正在處理的項目有很大的文件夾集合。我一直在努力尋找一種更好的方法來排序它們很長一段時間,我想編寫一個應用程序,根據我說的任何標準創建組,例如「2011年的文件夾」或「包含文件的ax類型的文件夾「等創建虛擬文件夾並將它們掛接到文件系統

這是相當直接的,並不會出現太多的代碼在WinForms或WPF中使用自己的用戶界面的問題。但是我認爲如果我可以讓這些文件夾看起來是文件系統的一部分,會更好,所以其他應用程序(如現有的文件探索器)可以看到它們。

這可能嗎?它會導致我沒有考慮過的問題嗎?如果可能,我該如何去做?

我認爲這樣做的一種方式是讓應用程序監控文件系統,並在每次發生更改時創建文件夾快捷方式,但我很好奇它是否可能通過'網關」文件夾

編輯:好這顯然是可能的,因爲http://www.virtualfolder.net/可以做到這一點,而現在,我認爲它這樣可以TrueCrypt的,但如果它沒有顯示爲一個單獨的這將是很好駕駛。所以問題就變成了,我該如何執行它?

+0

Windows 7內置了該功能 –

回答

4

這是使用文件系統驅動程序或文件系統過濾器驅動程序完成的。首先讓您創建一個虛擬文件系統並將其掛載到一個驅動器盤符上,並將其掛載到NTFS驅動器上的一個文件夾(該文件夾必須存在,但其內容被虛擬文件系統目錄樹「替換」)。文件系統過濾器驅動程序可讓您在現有文件夾中引入虛擬文件和文件夾而不必替換它

VirtualFolder使用文件系統驅動程序,因爲它創建一個驅動器號。

這兩種類型的驅動程序都是用C編寫的,並且工作在內核模式下。編寫它們需要深入的Windows內部知識和驅動程序開發經驗(因爲文件系統驅動程序是最複雜的驅動程序類型之一)。

我們提供多種與虛擬存儲相關的產品。其中之一Callback File System是一個文件系統驅動程序。它會調用您的用戶模式代碼來執行實際的文件系統功能。另一種產品CallbackFilter是FS過濾器驅動程序(也稱爲用戶模式代碼)。但是,當前版本的CallbackFilter不允許您引入虛擬文件和文件夾(這將在下一版本中實現)。

還有Pismo File Mount產品,他們使用過濾器驅動技術。你可以檢查他們是否可以完成你需要的東西。

9

您可以創建一個Shell Namespace Extension,收集您想要的文件信息,並以您希望的任何方式將其顯示在Windows資源管理器中。 You can choose where您的擴展所在的位置,無論是作爲其自己的頂級節點,還是另一個系統虛擬文件夾/擴展的子項,還是作爲文件系統文件夾的子項。

編寫一個SNE不是微不足道的,但是編寫較低級別的文件系統驅動程序要簡單得多,而且它不需要特殊的面向驅動程序的編譯器。任何支持開發COM對象的編譯器都可以工作。

0

從我收集的內容中,您正在尋找一種方法來呈現預定義文件查詢的結果,使其看起來好像它們位於文件系統中的特定位置。如果這是正確的,你可能想看看Hard Links and Junctions。這些文件系統服務可以做什麼是有限制的。然而,它的實施非常簡單。

相關問題