8

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

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

これは可能ですか?私が考えていなかった問題を引き起こすでしょうか?可能でしたらどのようにすればよいでしょうか?

私が考えた 1 つの方法は、アプリにファイル システムを監視させ、変更があるたびにフォルダー ショートカットを作成させることですが、実際に「ゲートウェイ」フォルダーを介して偽のファイル システムをエクスプローラーに提示できるかどうかに興味があります。

編集: http://www.virtualfolder.net/で実行できるので、明らかに可能です。今考えてみると、TrueCryptで実行できますが、別のドライブとして表示する必要がなければいいと思います。それで問題は、どうやって実装するのですか?

4

3 に答える 3

10

必要なファイル情報を収集し、必要な方法で Windows エクスプローラー内に表示する シェル名前空間拡張機能を作成できます。独自の最上位ノードとして、別のシステム仮想フォルダー/拡張機能の子として、またはファイル システム フォルダーの子として、拡張機能を配置する場所を選択できます。

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

于 2012-12-18T19:02:14.827 に答える
4

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

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

どちらのタイプのドライバーもCで記述されており、カーネルモードで動作します。それらを作成するには、Windowsの内部に関する深い知識とドライバー開発の経験が必要です(ファイルシステムドライバーは最も複雑なドライバータイプの1つであるため)。

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

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

于 2012-12-18T16:58:27.930 に答える
0

私が収集した情報から、定義済みのファイル クエリの結果を、ファイル システム内の特定の場所にあるかのように表示する方法を探しています。それが正しければ、 Hard Links and Junctionsを調べることができます。これらのファイル システム サービスでできることには制限があります。ただし、実装するのは本当に簡単です。

于 2012-12-20T21:46:08.877 に答える