2012-12-18 11 views
7

私が取り組んでいるプロジェクト用の大きなフォルダがあります。私は長い間それらをすべて並べ替えるためのよりよい方法を見つけようとしていました。私は、「2011年のフォルダ」や「ファイルの斧型を含むフォルダ」など、何らかの基準に基づいてグループを作成するアプリケーションを作成したいと考えています仮想フォルダを作成してファイルシステムにフックする

これはかなり簡単で、winFormsやWPFなどで独自のUIを使用してコードを作成する際に問題はほとんどありません。しかし、これらのフォルダをファイルシステムの一部に見せることができれば、他のアプリケーション(既存のファイルエクスプローラなど)がそれらを見ることができれば、はるかに良いと思います。

これは可能ですか?私は考慮しなかった問題を引き起こすでしょうか?それが可能であれば、どうやってやるの?

私は、ファイルシステムを監視し、変更があるたびにフォルダのショートカットを作成させることを考えていましたが、実際には偽のファイルシステムを 'ゲートウェイ」フォルダ

EDIT:http://www.virtualfolder.net/はそれを行うことができ、そして今、私はそれについて考えるようにTrueCryptのができるので、それは別のように表示されている必要はありませんでした場合、それはいいだろうが、それは、明らかに可能だ [OK]をドライブ。だから問題は、どのように私はそれを実装するのですか?

+0

Windows 7には、その機能が組み込まれています –

答えて

4

これは、ファイルシステムドライバまたはファイルシステムフィルタドライバを使用して実行されます。まず、仮想ファイルシステムを作成し、ドライブレターとNTFSドライブ上のフォルダにマウントします(フォルダは存在する必要がありますが、その内容は仮想ファイルシステムのディレクトリツリーで置き換えられます)。ファイルシステムフィルタドライバを使用すると、仮想ファイルとフォルダを置き換えずに既存のフォルダに導入できます。

VirtualFolderはドライブレターを作成するときにファイルシステムドライバを使用します。

両方のタイプのドライバは、Cで書かれ、カーネルモードで動作します。それらを書くには、Windowsの内部知識とドライバー開発経験が必要です(ファイルシステムドライバーは最も複雑なドライバータイプの1つなので)。

仮想ストレージに関連するいくつかの製品を提供しています。それらの1つ、コールバックファイルシステムは、ファイルシステムドライバです。実際のファイルシステム機能を実行するためにユーザモードコードを呼び出します。もう1つの製品CallbackFilterは、FSフィルタドライバです(また、ユーザーモードコードも呼び出します)。ただし、CallbackFilterの現在のバージョンでは、仮想ファイルとフォルダを導入することはできません(これは次のリリースで実装される予定です)。

Pismo File Mountの製品もあります。これらはフィルタドライバ技術を使用しています。必要なものを達成できるかどうか、彼らに確認することができます。

9

希望するファイル情報を収集し、Windowsエクスプローラ内に任意の方法で表示するShell Namespace Extensionを作成できます。 You can choose where独自の最上位ノード、別のシステム仮想フォルダ/拡張子の子、ファイルシステムフォルダの子としての拡張子があります。

SNEの作成は簡単ではありませんが、より低レベルのファイルシステムドライバを作成する方が簡単で、特別なドライバ指向のコンパイラは必要ありません。 COMオブジェクトの開発をサポートするコンパイラは動作します。

0

私が集めたことから、あらかじめ定義されたファイルクエリの結果を、ファイルシステムの特定の場所にあるかのように見せる方法を探しています。それが正しい場合は、Hard Links and Junctionsを調べるとよいでしょう。これらのファイルシステムサービスでできることには限界があります。しかし、実装するのは本当に簡単です。

関連する問題