FileStream.handle无法在CE-ARM发行版配置中使用

时间:2014-01-24 19:53:45

标签: compact-framework filestream handle

我正在尝试获取使用System.IO.FileStream类创建的Filehandle的值。

using System.IO;

Filestream fs = New FileStream("c:/1/txt",FileMOde.OpenorCreate,FileAccess.ReadWrite);

Intptr file_ptr = fs.Handle;

当我在带有调试配置的XP-x86操作系统中运行它时,它运行正常。但是当我在带有发布配置的Ce-Arm OS中运行它时,它会抛出一个错误。

System.IO.FileStream不包含Handle的定义,并且没有可以找到接受类型Handle的第一个参数的扩展方法System.IO.FileStream(您是否缺少using指令或汇编参考?)

当我尝试构建发布配置时,是否应该进行任何更改。 我知道发布配置将打开所有编译器优化。但它与内置类和属性有什么关系呢?我真的很困惑。请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:0)

这里有一些事情发生。

  1. Windows(桌面和CE)中的目录由反斜杠“\”字符分隔,而不是正斜杠。桌面Windows可能不介意它,但Windows CE不会喜欢它。
  2. Windows CE没有驱动器号(或当前目录)的概念,因此您的路径也是无效的。
  3. CF FileStream没有暴露文件句柄,我想说可能是有充分理由的。这就是你看到的错误的具体原因。使用托管流外部的句柄进行混乱可能会导致管理端进入不确定状态并导致错误。为什么,你究竟需要那个处理?如果我们知道这一点,也许我们可以提出一种解决方法,但通常使用原生句会导致不好的事情发生。