【发布时间】:2011-10-27 23:52:21
【问题描述】:
我使用 Dokan(.NET) 库在 C# 中创建了一个虚拟驱动器,它运行良好。
但是,当我尝试在另一个应用程序中从驱动器中读取文件时,只要使用同步读取的操作(例如 System.IO.File.ReadAllText(...))就会出现异常。
异常的文本是:“句柄不支持同步操作。可能需要更改 FileStream 构造函数的参数以指示句柄是异步打开的”。
因此,如果我的解释正确,.NET 显然会尝试在单个同步操作中读取文件的全部内容,但 Dokan 似乎不允许这样做。
但是当使用像ReadAllText 这样的方法时,我真的无法控制FileStream 的构造方式(这不是该方法的重点吗,毕竟,只需获取文件内容而不不必为 Streams、Readers 和 Buffers 等而烦恼?)。
我能否让 Dokan 以某种方式支持对其文件句柄的同步 I/O 访问?或者我是否必须以某种方式接受这样一个事实,即在 Dokan 托管的文件上无法进行同步操作(并希望在我的虚拟驱动器上运行的任何应用程序都不会依赖它们)?
【问题讨论】:
-
你设法解决了这个问题。我是 Dokan 的新手。目前最新的是 0.6