.NET でディスク ドライブをエミュレートして、読み取り/書き込み/ロック操作をインターセプトする方法はありますか? C# でGMail Drive
のようなフロント エンドを作成したいと考えています。
ありがとう、トム
.NET でディスク ドライブをエミュレートして、読み取り/書き込み/ロック操作をインターセプトする方法はありますか? C# でGMail Drive
のようなフロント エンドを作成したいと考えています。
ありがとう、トム
Linux では、Mono.Fuse API ( http://www.jprl.com/Projects/mono-fuse.html ) を使用して、ユーザーランド コードで .NET ベースのファイル システムを実装できます。
http://www.truecrypt.org/がどのようにそれを行っているかを見ることができます。これは、ファイルを使用するか、ドライブまたはパーティションを使用することによって、まさにそれを実行します。そして、それが実際のドライブであるかのようにファイルをマウントします。さて、おそらくソースコードは少し複雑です;)
私はこの目的のためにEldosCallbackFile Systemを自分で使用していますが、それは良いのですが、必ずしも安くはありません。
無料/安価なプロジェクトもいくつかありますが、そのうちの1つが最近SOに関する同様の質問で言及されたと確信していますが、現時点ではもう見つけることができません。ただし、階層化されたWindowsファイルシステムドライバーは簡単ではないため、安定性が大きな問題になる傾向があります。
EZNamespaceExtensionfor.NETを使用することもできます。これにより、Windowsエクスプローラーとの統合が可能になります。ライセンスが開発者ごとであり、配布ではないことを考えると、それほど高価ではありません。
EZNamespaceExtension.NETの大きな問題を更新します。長い間更新されていません。LogicNPは、2010年以降、いくつかの新機能を備えたリリースがないため、EZNamespaceExtension.NETへの関心を失ったようです。.NET4のサポートも、Windows8リボンツールバーのサポートもありません。
実際には、.NetはディスクアクセスなどのOS機能の上にあり、マネージドファイルアクセサーなどを提供します。すべてをマネージドC#で書き込むこともできますが、OSで別のドライブのように扱うにはアンマネージド呼び出しが必要です。
シェル拡張機能はすべてCOMです:http://msdn.microsoft.com/en-us/library/cc147467 (VS.85).aspx
ただし、エクスプローラーからのドラッグアンドドロップが可能で、ファイルシステムビューのように見える.Netデスクトップアプリを作成することはできます。