Do Dokan / Dokan.NET (не) поддерживает синхронный ввод-вывод?

Я создал виртуальный диск на C # с помощью библиотеки Dokan (.NET), и он работает довольно хорошо.

Однако, когда я пытаюсь прочитать файл с диска в другом приложении, я получаю исключение всякий раз, когда использую операции, которые читаются синхронно, например System.IO.File.ReadAllText (...) .

] Текст исключения следующий: «Дескриптор не поддерживает синхронные операции. Возможно, потребуется изменить параметры конструктора FileStream, чтобы указать, что дескриптор был открыт асинхронно».

Итак, если я правильно интерпретирую это, .NET очевидно, пытается прочитать все содержимое файла за одну синхронную операцию, но Докан, похоже, не позволяет этого.

Но при использовании такого метода, как ReadAllText , я действительно не могу контролировать способ построения FileStream (разве не в этом весь смысл этого метода, в конце концов, просто получить содержимое файла, не беспокоясь о потоках, считывателях, буферах и т. д.?).

Могу ли я заставить Dokan поддерживать доступ к синхронному вводу-выводу на нем? файл обрабатывает как-нибудь? Или мне нужно как-то смириться с тем фактом, что синхронные операции с файлами, размещенными в Dokan, просто невозможны (и надеюсь, что от них не зависит ни одно приложение, которое может когда-либо работать на моем виртуальном диске)?

8
задан Andreas Baus 16 August 2011 в 11:27
поделиться