私はDokan(.NET)ライブラリを使ってC#で仮想ドライブを作成しました。Dokan/Dokan.NET(not)は同期I/Oをサポートしていますか?
しかし、別のアプリケーションのドライブからファイルを読み込もうとすると、System.IO.File.ReadAllText(...)
のように同期的に読み取る操作を使用するたびに例外が発生します。
例外のテキストは次のとおりです。 "Handleは同期操作をサポートしていません。ハンドルが非同期で開かれたことを示すために、FileStreamコンストラクタのパラメータを変更する必要があります。
これを正しく解釈すると、.NETはファイルの内容全体を1回の同期操作で読み取ろうとしますが、Dokanはそれを許可していないようです。
しかしReadAllText
のような方法を使用しているとき、私は本当に
FileStream
が構築される方法を制御することはできませんが(そのメソッドの全体のポイントは、結局のところ、単に気にすることなく、ファイルの内容を取得するということではありませんストリームと読者とバッファとそれ以外のものはありますか?)。
Dokanがファイルハンドル上で同期I/Oアクセスをサポートするようにすることはできますか?あるいは、Dokanがホストしているファイルでは同期操作ができないという事実をどうにかして生きなければならないのですか?
は、あなたがこの問題を解決するために管理してください。私はDokanに新しいです。現在最新です0.6 – Bamboo