Creé un disco virtual en C# usando la biblioteca Dokan (.NET), y está funcionando bastante bien.¿Admite Dokan/Dokan.NET (no) la E/S síncrona?
Sin embargo, cuando trato de leer un archivo de la unidad en otra aplicación obtengo una excepción siempre que uso operaciones que se leen de forma síncrona, como System.IO.File.ReadAllText(...)
.
El texto de la excepción es: "Handle no admite operaciones sincrónicas. Los parámetros para el constructor FileStream pueden necesitar ser cambiados para indicar que el identificador se abrió de forma asíncrona".
Así que si estoy interpretando esto correctamente, .NET aparentemente intenta leer todo el contenido del archivo en una sola operación síncrona, pero Dokan no parece permitir eso.
Pero cuando se utiliza un método como ReadAllText
Realmente no tengo ningún control sobre la forma en que se construye la FileStream
(no es que el punto central de ese método, después de todo, sólo tiene que obtener el contenido del archivo sin tener que preocuparse con Streams y Readers and Buffers y todo eso?).
¿Puedo obtener Dokan para admitir el acceso síncrono de E/S en su archivo maneja de alguna manera? ¿O tengo que vivir de alguna manera con el hecho de que las operaciones sincrónicas simplemente no son posibles en los archivos alojados en Dokan (y espero que ninguna aplicación que alguna vez tenga que funcionar en mi disco virtual dependa de ellos)?
¿Te logrado resolver esto. Soy nuevo en Dokan. Lo más nuevo es actualmente 0.6 – Bamboo