我使用Dokan(.NET)库在C#中创建了一个虚拟驱动器,它运行良好。
但是,当我尝试从另一个应用程序中的驱动器读取文件时,每当使用同步读取的操作时都会出现异常,例如System.IO.File.ReadAllText(...)
。
异常的文本是:“Handle不支持同步操作。可能需要更改FileStream构造函数的参数以指示句柄是异步打开的”。
因此,如果我正确地解释这一点,.NET显然会尝试在单个同步操作中读取文件的整个内容,但Dokan似乎不允许这样做。
但是当使用ReadAllText
之类的方法时,我对FileStream
的构造方式并没有任何控制权(这不是该方法的全部意义,毕竟,只需获取文件内容,而不必打扰Streams和读者和缓冲区等等?)。
我可以让Dokan以某种方式支持文件句柄上的同步I / O访问吗?或者我必须以某种方式忍受在Dokan托管文件上无法进行同步操作的事实(并且希望没有可能必须在我的虚拟驱动器上运行的应用程序依赖于它们)?
答案 0 :(得分:0)